Mensile - 25 Maggio 1 986 - Anno V - N, 31 - Sped. Abb. Post. GR Il 1/70 - CR -Distr MeFe
La ri visi® d^gii utenti di sistemi
ertta P e
?» ? — r ’ -.^n
T r
r
0
c
maxell ur
li f
k ( WL
w r * *
n
IC
j
m
1111111111111
min Fil li
: i imi
NUOVA MAXELL UR
Una cassetta Low Noise a livello Hi-Fi
C'era una volta la cassetta adatta ad
un ceno tipo di utilizzo, alla quale
non si potevano chiedere prestazioni
superiori.
Adesso c'è la UR MAXELL che, gra-
zie alla sua modernissima tecnologia,
rivoluziona gli standard* della casset-
ta low noise portandoli a livelli hi- ti .
UR significa UNI VERSA L RECOR-
D1NG, cioè adatta ad ogni tipo di re-
gistratore, dal portatile alla piastra
ultrasofisiicata, sempre con la certez-
za di prestazioni eccellenti,
fi nastro UR offre un aumento in
MOL (Maximum Output Level) di
a
maxell.
L arte di registrare.
1 ,5 dB alle basse frequenze e di 2 dB
alle alte rispetto alla serie UL.
L’ulteriore abbassamento del rumo-
re di fondo offre la gamma dinami-
ca più ampia della categoria: fino a
77 dB (a 1 Khz), ottenendo cosi un
suono chiaro e cristallino senza alcu-
na distorsione.
L'involucro della UR è costruito con
un nuovo polistirene di grande resi-
stenza che ne assicura una lunga vita
senza problemi.
A voi non resta che provare; non re-
sisterete al fascino, neanche troppo
discreto, della nuova UR MAXELL.
Vie 20 C 64 C16/128 Generati
E NON INDURCI
IN SYNTAX ERROR
■w
RUBRICHE
4 L’ARGOMENTO DEL MESE
DOMANDE/RISPOSTE
RECENSIONI
12 1 RIGA
18
€128, impressioni a "caldo M
34
Speed dos Formula 1
*
•
84
Come ti sproteggo il cartridge
*
L’utile
21
Un piccolo segreto del Ci 28
*
40
Nuovo sistema
*
•
•
•
90
Enciclopedia di routine
•
*
*
*
Oltre II basic
23
Ordinamento ultraveJoce di un
vettore
»
88
Aita riscoperta dell'lnterrupt
■
Giochi
28
Scassammo
*
*
30
Magic square
•
*
Didattica
38
Discorso
•
*
•
*
Periferiche
100
Stampare o non stampare 7
Visualizzare,..
*
*
*
*
104
Come disegnare con il p lotte r 1 520
•
*
*
*
U ^
Direttore: Alessandro de Simone
R ed silo n-e/ce] laboratori: Claudio Baiocchi. Cario e Lorenzo BEuazzetta. Giovanni fW.hj. Simon#
Bettola Andrea e Alberto Banani, frego e Federico Ca-netla. GiarsearVi Castanga. U'nberto Colapk:-
duori. Pasquale D'Andrcli, Maunno Odi Ahare. Marco Oe Martino. Piero Deli 'One?. Luca Gbnuzzì
■V bcheto Maggi, GiancarìtsM ariani. Ma* *® Miotti, Ray-oMol^anXiaj^iohVtótw Enrico Scelga
D Matturro m L Nrtb Massimo Pofluln, Carla Ramp/, Paino Sorgalo, Giovanni Véndita. Amatilo Visconti
Sagrale ria di r«t*zk>o»; Maura. CoOMroi», Piera Penn
Ufficio Grafico: Mary Senvenuio, .Arturo Ciaq’ia. Paoto Vcrtuoccs
Di rea io ne, redazione, pubblio Uà: V.lé Famagosla. 75- £0142 Milano - Tei 02/6467346
Pubblicità; Melano: Leandro NenMfuL [duettore véndite). Giorgio Ruffoni. Roberto Sgihirinzetli
(settore informatica)', CiaisSio Ti<fGrte - V ia FamagosEa, 75 - £0142 Milano - Tei 02/B467348
* Emilia Romagiria: Sjjazio E - P.zza Roosove), 4 - 40123 Bologna - Tel 061/236979
* T oscena . Marche, Umbria' Mercurio Srl ■■ via Roda n,9- San Giovanni v&v&mo {A r] ■ T gl QS5/3--V 7444
* Lazio, Campana Sjpazó Nuovo - via P FOiCan 70 - 00139 Roma ■ Tei. 06/8 1-00679
Segretaria: Liliana CteQiongi - Abbonamenti; Marina Vanii™
Tariffa; prozzo per copia L 3 500. Abbonamento annuo (t T fasctìo'i} L. 35.000 Estero il doppio
Abbonamento eumgtetrvtì ale riviste Computer c Commodore Computer Club l 7 0 000
I versamenti vanno indirizza b a Systems, Pedonale Srl mediante assegno banca* io
p utilizzando il c/c postate n 37952207
Composizioni: Systems £<i4 oriate Srl - Fotolito: Sysiems EditonaieSn
Stampa: La l iiograiica S r.1 - Busto Arsilo i VA}
Ragltlrixlon*: Tributiate ds M;iaran. 370 fól £/T0fe2 - Direttore Responsabile Micheto Dj Fisa
Spedi, in abb. post. gì. Ili - Pubertà .inferiore al 70% ■ Oistrifc: MePo, vìa G. Cardano 32 - Milano
Che influenza può avere un calcolatore su
chi lo usa ? E vero che, a furia di usarlo, si
diventa aridi e privi di creatività? Ed altre
dissertazioni...
omc è ormili consuetudine da qua!-
che tempo, anche questo mese viene pre-
sentato su CCC* in forma “speciale*’, un
argomento di interesse generale. Stavol-
ta ci occupiamo di come interpretare cor-
di Alessandro de Sìmonc
rettamente gli errori da noi commessi in
fase di stesura di un programma Basic.
Benché il termine sia sproporzionato
olle funzioni svolte da un calcolatore in
fase di “debug”, non è azzardato affer-
mare che le segnalazioni di errore costi-
tuiscono un esempio di intelligenza arti-
ficiale (A.L)
E 1 ben vero che il messaggio Syntax
Error, tanto per citare il più banale, non
è altro che il risultato di un mancato ri-
scontro con parole chiave (o altro) me-
morizzate nel computer. Ma allora, vo-
lendo privare la visualizzazione del mes-
saggio della caratteristica di "intelli-
genza", cosa dovrebbero rappresentare i
segni rossi e blu apposti da un insegnante
nella correzione di un compito di gram*
matica, di sintassi o di matematica?
Fortunatamente, a scuola, il corpo do-
cente non si limita a segnalare Tenore
commesso ma (almeno così dovrebbe es-
sere) aggiunge uno o piu commenti scrit-
ti, per non parlar poi delle ramanzine
orali...
Ma ciò che interessa in questa sede
non è Io stabilire se un computer può
pensare o se è soltanto uno "stupido” al
nostro servizio (fatto che, a mio modesto
e personale parere, può esser facilmente
assimilato ad una forma mascherata di
razzismo o neo-classismo).
Vogliamo qui individuare, nello stru-
mento informatico, gli atteggiamenti che
la mente umana è costretta (o desidera)
assumere ne devoluzione delta società.
L’altro ieri
Tanti anni fa c'era, tra le altre discipli-
ne scolastiche (che allora si chiamavano,
brutalmente, "materie”) quella della
Calligrafia che era tenuta in gran conto
daiTjntero corpo docente nella valuta-
zione (ma si diceva, allora, “voti”) dei
risultati finali. Erano posti in commer-
cio, addirittura, spedali quaderni con ri-
ghi strani prestampati, simili a spartiti
musicati, che facilitavano la “bella scrit-
tura”; parallelamente fioriva il mercato
dei pennini, con vari “becchi”, ciascuno
adatto per specifiche applicazioni.
Fortunatamente la diffusione della
penna a sfera prima, e del buon senso
poi, limitò la proliferazione dell" inchio-
stro con gran dispiacere delle fabbriche
di detersivi. Al giorno d'oggi, comun-
que, poderose masse di impiegati statali
sono costrette, da apposite leggi (o, più
semplicemente, da stamia imbecillaggi-
ne) ad usare la penna invece dei compu-
ter che sono sospettati, come i comunisti
degli anni '50, di mangiare i bambini.
Lasciamo però da parte la mancata
meccanizzazione delle informazioni e,
con essa, il conseguente accumulo di pra-
tiche che, tra un po’ di tempo, richiede-
ranno gir stadi comunali per esser
archiviate.
Ieri
Ricordo che, iscritto al biennio di in-
gegneria, chiesi ad un professore se quel-
la matematica che ero costretto a studia-
re (limiti, derivate, integrali e compa-
gnia) sarebbe stata utile per progettare
un edificio o per determinare il carico
delTacciaio. L 'interpellato, candida-
mente, rispose che per far reggere in pie-
di un edificio, uno stadio gremito o una
nave stracolma sono sufficienti calcoli
che richiedono Le moltiplicazioni, le divi-
sioni e (ma raramente), anche le somme
le sottrazioni. Di logaritmi, Limiti, deri-
vate e sciagurati compagni neanche Tom-
bra, almeno nella più comune pratica
professionale.
In seguito, passato al tiennio superio-
re, e applicandomi nelle esercitazioni
pratiche (progetto di edifici in cemento
armato, telai in acciaio e applicazioni del
precompresso) scoprii che il professore
di qualche anno addietro aveva perfetta-
mente ragione: erano sufficienti le quat-
tro operazioni.
Ma allora perchè costringere gli stu-
denti ad affrontare argomenti cosi odiosi
che suggerivano, molto spesso, il cambio
del corso di studi?
La risposta, in verità, mi fu fornita
dallo stesso insegnante: “Perchè ranalisi
matematica è V unico strumento che at-
tualmente abbiamo per conferire una
tipica forma mentis al futuro ingegnere
che dovrà barcamenarsi tra situazioni
sempre nuove e impreviste, mute voli da
progetto a progetto”, E anche in questo
aveva perfettamente ragione.
Oggi
Ma i tempi son cambiati. Prima degli
anni 70 i calcolatóri erano ancora una
chimera e il vecchio CDG 20 (a transi-
stori) installato presso la facoltà di Inge-
gneria di Napoli, funzionava un giorno sì
e tre no, con gran disperazione del giova-
ne e valido professor Esposito al quale,
comunque, riconosco il merito del conta-
gio per la passione dei computer.
E, oggi, quale strumento "logico” mi-
gliore, se non un calcolatore, può esser
proposto a chi vuole esplorare, anche da
solo, i meandri più nascosti delta razio-
nalità? Quale miglior stimolo ad appli-
carsi può esser rappresentato dal puzzle
di un messaggio di errore i spiegabile?
Oppure di un risultato decisamente con-
trario a quello che ci si aspettava?
Facciamo, tutti, un passo indietro nel
considerare le nostre prime esperienze
con un calcolatore. Se qualcosa non fun-
zionava (ed eran tante, specialmente al-
l'Inizio) pensavamo subito che il compu-
ter acquistato era rotto dato che (inevita-
bile, presuntuosa premessa) noi non po-
tevamo aver sbaglìato.
Chi, invece, ha trascorso centinaia di
ore alla tastiera, ma non per giocare, sa
benissimo che, in caso di malfunziona-
menti, la causa principale siamo noi stes-
si, che non siamo stati capaci di program-
mare o di trascrivere un listato oppure di
non aver sistemato alcuni puntatori pri-
ma di o dopo che.
Una nuova umiltà, unita ad una buona
dose di pazienza, caratterizza Tumore
de 11 '“Homo programma ns'\ Migliora*
menti nel rendimento scolastico, mag-
gior capacità di effettuare scelte oculate,
razionalità, curiosità, desiderio di cono- -
scenza e rifiuto di comportamenti con*
traddittori costituiscono il risultato di in-
tense ore di (piacevole) studio di fronte
al monitor. Per non parlar, poi, degli
appassionati di linguaggio macchina.
E pensare che c’è ancora gente, soste-
nuta da scellerati tuttologi, che vede il
computer come una nuova peste da al-
lontanare con diffidenza.
Il tutto in un contorno sociale spesso
irrazionale e contraddittorio che, anzi,
richiede carenza dì razionalità per
sopravvivere.
Commodore Computer Club - 5
Domande Risposte
DOHVI4DE }£\2bOZ . .LE
Scherzi
Come tulli, o quasi, hanno capito dal-
la data e dal periodo cui sì riferiva (:car-
nevale)* il "'Comunicato'' apparso sul
n unterò scorso era un pesce d’apriic .
Ma, a proposito di scherzi, siamo co-
stretti a segnalare che alcuni buontempo-
ni, non sappiamo se in buona fede oppu-
re no, si presentano a nostro nome per
compiere azioni che, superando la bar-
riera de! buon gusto* cadono nella
illegalìtà,
Ci riferiamo agii inviti, da parte di per-
sone non identificate* a partecipare a
concorsi inesistenti, al ritiro di articoli e
programmi con promessa dì pubblicalo-
ne o dì commercializzazione che mai sii-
ne da noi state autorizzate.
Pertanto non solo invitiamo gli autori
delle "'bravate’' a interrompere tali azio-
ni ma, nel contempo, consigliamo i nostri
lettori di diffidare di persone che doves-
sero presentarsi a nostro nome per ritira-
re denaro, articoli o programmi.
In caso di dubbio telefonate (02/
8467348) per segnalare sospetti di irrego-
larità e, nel frattempo, non consegnate
nulla a nessuno. Tutti i componenti della
Redazione sono, ovviamente, sempre in-
formati Sulle varie iniziative promozio-
nali in corso e , pertanto, sono in grado di
sciogliere ogni dubbio.
Pulsante inefficace
Ho costruito* come da voi suggerito
sui N,28* il pulsante di Reset, ma non
funziona. Potete aiutarmi? (Massimo
Musaccht, Ferrara}
• Purtroppo, come avevamo specificato
nello stesso articolo, l'esemplare di C/6 4
in tuo possesso non è di quelli che con-
sentono tale applicazione. In questi casi
è necessario utilizzare la porta utente op-
pure quella di espansione per '"ricava re’ '
il pin dì reset. Se ritieni che la spesa dei
connettori per tali porte sia eccessiva h
l'unico modo di aggirare l'ostacolo è
quello di aprire il computer, rintracciare
il pin dì Reset sul circuito stampato (me-
glio se nei pressi delle porte) ed effettau-
re il collegamento in loco. Attento a non
creare involontari corti-circuiti col
saldatore!
Dove Jo metto?
□ Ho costruito il pulsante di Reset ma,
quando collego il drive* devo necessaria-
mente rimuoverlo. Come pos&u continua-
re ad utilizzarlo? (Amerigo Santoro <
Terni)
m II pulsante di Reset collega a massa il
pin deU’intero sistema (computer e ac-
cessori), E' quindi possìbile inserirlo nel-
la seconda porta seriale de! drive. E se a
questa è collegata la stampante, inseri-
scilo nella porta libera di quest 'ultima
periferica.
Joy e padelle
In un gioco in cui è previsto l'uso del
joystick* è possibile usare le padri k te
viceversa)? (Mario Crisaiolo, Roma)
» Un joystick è formato da un gruppo di
cinque interruttori che, a seconda della
posizione dell'assicella, vengono chiusi
oppure aperti e* in tal modo, il computer
"'riconosce” lo spostamento impresso.
Il joystick, pertanto, è uno strumento
del tipo ""tutto o niente" nel senso che un
interruttore può esser solo aperto oppu-
re chiuso* c non sono possibili "stati”
intermedi.
Le paddle* al contrario, sono resisten-
ze elettriche variabili che, collegate a
porte "analogiche"* comunicano al com-
puter una delle 256 possibili (almeno in
teoria) posizioni intermedie della
manopola.
Pertanto non è possibile la sostituzio-
ne accennata sia perchè il joy è digitale e
le paddle sono analogiche, sia perchè le
paddle sono due c il joy possiede al suo
interno ben cinque interruttori sia per-
chè. infine* ì pin di collegamento presen-
ti nel connettore sono diversi nei due
casi!
Mancanza di “Press Play”
! Da alcuni mesi il mio computer, al
comando Load e Save, non risponde più
col solito messaggi» ' "Press. ma esegue
immediatamente, pur funziona rido be-
nissimo. Come posso fare per evita re que-
sto difetto che è davvero seccante in pro-
grammi che richiedono esplicitamente la
pressione del tasto Stop del registratore?
(Giovanni Ripamonti, Lecco)
* Abbiamo più volte detto che, se il
computer funziona egualmente nelle va-
rie fasi (registrazione* verifica, carica-
mento) il difetto è da attribuirsi ad un
corto circuito interpretato, dal compu-
ter, come un costante abbassamento di
un tasto del registratore.
Tale corto circuito può essersi verifica-
to sul computer (caso raro) oppure su!
registratore (più frequente).
Per sapere quale dei due casi è il tuo,
stacca il registratore e digita "Load". Se
Io schermo "scompare” subito vuol dire
che in corto è sicuramente la pista del
6 - Commodore Computer Club
la
Superstar
£
/■
-T
V-
\*
fra le stampanti
per computer
é una Star!
Probabilmente, nessun altra stampante riunisce in sè tutte
le straordinarie prerogative delia NL-10 una periferica per
computer estremamente convincente nelle prestazioni e
nel prezzo NL-1Q può contare su fans m ogni settore aperto
all informatica gestionale, organizzativo, amministrativo, svi-
luppo, produzione, hobby stico Di lei gli addetti ai lavori apprez-
zano la semplicità d'uso e la qualità delio stampato. E h sorpren-
dente su NL’10 la quantità di funzioni di stampa, controllabili
dall utente tramite un pannello frontale molto sofisticato, cosi
come la varietà dei formati di stampa e la sua enorme adattabi-
lità a qualsiasi tipo di computer Anche nei l'affidabilità. NL-10
darà prova di tutta la sua amicizia. Chieda al nostro rivenditore
di zona una dimostrazione di Superstar NL-10 siamo certi che
anche Lei concluderà che, con una Star, si può andare molto
lontano!
La tua stampante
y?A
7!ì
DlSìkìM ÌOkf PER i 77,1 UA
[ /„ ILlMJfflìOU.,
i // /
l // /
M
>€--
Pùf avere maggiori inkjrrriazjQr e l'indirizzo dei nvencfftore dalla Sua sorta,
et invìi il coupon allegato
I Ditte: Via- n
Nome; Cap„; Citta:
Tel _
Via Gallarai* £11 2Qi5t Milano
02 '301 00 rà 30100 9-1 r. a
calcolatore. Se, invece, compare la scrit-
ta “Press,,/' vuol dire che rincori venien-
te è da ricercarsi nel registratore,
I n entrambi i casi è necessaria un po’ di
pratica sia per individuare il copto circui-
to sia per eliminarlo. Se è dovuto a cause
meccaniche, un metodo sbigativo è quel-
lo di troncare il filo del sensore di tasto
premuto e di collegato ad un pulsante
esterno (normalmente aperto) che pre-
merai quando richiesto.
Computer parlanti
□ Posseggo un C/t6 e vorrei supere se
esistono programmi, come il vostro *’ ‘La
voce 1 * per C/64, capaci di Tarlo Sparla*
re” (Franz Comploj, Ortìsei)
* La sintesi vocale, c altre diavolerie
elettroniche capaci di simili meraviglie,
presuppongono l'impiego di sofisticati
circuiti integrati appositamente realizza-
ti, IL SID del C'ó4 è attualmente il mi-
glior sintetizzatore sonoro attualmente
installato in computer di basso costo.
Quello montato sul CTó, purtroppo ,
possiede caratteristiche nettamente infe-
riori e non sarà mai possibile, di conse-
guenza, far parlare il tuo calcolatore.
Koala non funzionante
□ Noti riesco a far funzionare il vostro
programma ‘'Koala video” pubblicato
nelTenridopcdia di routine (CCC N,27),
(Marco Coccia , 5. Teresa di Spallare J
* Il programma cui ti riferisci consente
di utilizzare, nei propri listati, disegni
realizzati in precedenza col sistema
software - hardware “Koala"* che, tra
Faltro, funziona solo col drive per dischi
1541. Purtroppo tu possiedi solo il regi-
strato re e ri programma non può
funzionare.
C/64 a 80 colonne
G Vi .sono in commercio alcuni program-
mi per C/64 che consentono di portare Io
schermo da 40 a 80 colonne. Di che cosa si
tratta? ( Marco Russo, Siracusa)
* Si tratta di utility che ricorrono alla
tecnica della ridefinizione dei caratteri
per fare in modo che, nello stesso spazio
di una cella video in cui normalmente
risiede un solo carattere, ve ne siano due.
Come puoi immaginare la nitidezza de-
cade in mòdo impressionante, la possibi-
lità di gestire ì colori rimane illusoria ed è
praticamente impossibile riconoscere i
singoli caratteri su un comune televisore,
sia pure in B/N. Non dimenticare, inol-
tre, che programmi professionali (come
word processor, data base, spreadsheet
ed altri) non appena vengono caricati
“cancellano” tale utility e lo schermo ri-
torna alle consuete 40 colonne:
Video registra re le schermate
! E' possibile collegare il videóregistra-
tote al computer? (Davide Miiìtello,
Li m diate )
• Puoi coliegare il cavetto che normal-
mente inserisci nella presa del T/V, nel-
Tapposita presa d’ingresso del videoregi-
stratore, Tutto qui.
Caldi comportamenti
Dopo mezz’ora circa di lavora il mio
computer 'impazzisce”. A che cosa può
esser dovuto questa strana comporta-
mento a "caldo”? ( Claudio Detto Pietra ,
Abano)
* Abbiamo piu volte affermato che i
malfunzionamenti che si verificano
quando il computer si riscalda sono do-
vuti a saldature “fredde" che, a tempera-
tura ambiente, consentono il corretto
passaggio della corrente. Quando il com-
puter (drive, stampante o altro) si riscal-
da, le dilatazioni termiche, benché mini-
me* interrompono o, comunque, altera-
no il normale flusso di energia. In questi
casi, se si è esperti, è sufficiente aprire il
computer e “ripassare” le saldature so-
spette, Se non si è pratici di saldature è
meglio inviare l’apparecchio ad un cen-
tro specializzato in riparazioni di
computer*
Sfortunato Plus/4
G E’ possìbile trovare programmi ge-
stionali per il Ptu$/4 oppure adattare fa-
cilmente programmi normalmente in uso
per il C/64? (numerasi lettori).
• No
Fine di un computer
□ E* vero che la Commodore ha deciso
di bloccare la produzione del C/64? E, in
caso affermativo, che danno potremmo
avere noi, utenti di questo computer?
# Le voci che si sentono in giro sono di
vario tipo: Gheddafi proposto per il No-
bel della pace, Rcagan che trascorre le
vacanze a Tripoli, Gorbaciov che propo-
ne il divieto della vendita perfino delle
armi giocattolo. E’ inevitabile che corra-
no anche voci di fallimento della Com-
modore, di fusione della IBM con la Sin-
clair e di altre deliziose notizie.
Qualunque sia la salute commerciale
della Commodore è impensabile, a no-
stro parere, che un modello di computer*
simbolo della stessa Commodore, scom-
paia dopo esser entrato nella leggenda.
Comunque vadano le cose stà tran-
quillo; il numero di utenti È troppo alto
perchè software house, fabbriche di ac-
cessori e case editrici del settore (tra cui
noi, in prima fila) smettano dì occuparsi
dei popolarissimo calcolatore. Pensa che
ancora oggi, a distanza di anni dal fallito
esperimento delia Texas, continuano a
circolare programmi, periferiche e
software per il modello TI^99 che ebbe
una diffusione, ed un successo, netta-
mente inferiori al C/64!
Banche dati
G Potete pubblicare ì numeri di telefono
8 - Commodore Computer Club
di alcune banche dati operanti in
Europa?
♦ Sul N .2 (febb/mar Wi) della nostra ri-
vista "Personal Computer" è stato af-
frontato il tema delle modalità di collega-
mento via modem. Nello stesso articolo
(Ulisse a [TAF AC) figura anche un elen-
co. piuttosto ampio, dì banche dati e re-
lativi numeri di telefono.
Plus^4) accenna a questa anomalia che
potrebbe verificarsi e. addirittura, è pre-
visto un apposito comando (Esc + C) per
ridurre le dimensioni de IT arca video in
modo da esser completamente visibile
anche con televisori che dovessero pre-
sentare qualche problema.
Il Vie 20 aveva la possibilità di elimina-
re il bordo (o meglio, di allargare le di-
mensioni dell’area destinata alla visualiz-
zazione dei caratteri) ma tale tecnica non
è stata utilizzata spesso in programmi po-
sti in commercio proprio perchè non si
aveva la garanzia che F acquirente, torna-
to a casa, potesse utilizzare il programma
col proprio televisore.
Se può interessare, un apposito pro-
gramma per il Vie 20 (Scrittura a tutto
schermo) che allargava il video a 33 righe
per 25 colonne è stato pubblicato su CCC
NI!.
T ut losche mio
E * possibile eliminare la cornice del
video per utilizzare Finterò schermo?
( A ffons o Perna r M omelìa )
* Il bordo del video, presente anche per
una questione estetica, consente di adat-
tare qualsiasi esemplare dì computer
prodotto a qualsiasi televisore esistente.
In assenza del bordo* infatti, alcune
colonne o righe di caratteri potrebbero
non comparire su certi esemplari di TV
con le conseguenze che è facile immagi-
nare, Il manuale di istruzioni dclCrth (e
AVVERTENZA
IMPORTANTE
Tra le numerose domande che pervengono in Redazione, vengono
scelte in prevalenza quelle di interesse generale r rinviando . spesso
si ne die , la pubblicazione di quelle ritenute meno interessanti oppure
già affrontate dì recente su Commodore Computer Club .
invitiamo pertanto i lettori, specie se principianti f a sfogliare con
attenzione le pagine della nostra rivista e a leggere articoli che , pur se
apparentemente non lì interessano, contengono purtuttavia preziose
informazioni su istruzioni particolari (POKE, PEEK f S YS ed altre) o
tecniche insolite dì progni m ma zione , registrazione di dati, programmi
eccetera .
A,RE. - VIA DANTE, 8-34170 GORIZIA
• TUTTO IN ITALIANO
• 98 PAGINE VIDEO
• GRAFICA E TESTO A COLORI
« ARCHIVIO ALLIEVI
• MESSAGGI SONORI E GRAFICI
• CONTROLLI DI COERENZA
• GIÀ DISPONIBILI UNITA 1 DIDATTICHE
'■-T-r-'
I
SISTEMA
AUTORE
COOP. A.P.E. VIA DANTE, 8 * 34170 GORIZIA
TEL (0481 } 341 69
RECENSIONI
C 64 - C 16
Zoids
uesto nuovo gioco delta Mastertro-
mes presentii alcune simpatiche novità.
Innanzitutto una musica di sottofondo,
ed una schermata visuali //aia in perma-
nenza* accompagnano l'intero carica-
mento del gioco che si compie dopo 42
gin di nastro.
Quando il gioco inizia* la parte centra-
le del video viene occupata dallo scher-
mo radar, in alta risoluzione, incaricato
di \i sua lizzare la posizione della nostra
navicella àll’in terno di un labirinto. I
ovvio che la trama del gioco (combatti-
menti contro r soliti "cattivi 1 ) è solo una
scusa per mettere alla prova la nostra
abilità nel manovrare il joystick e. final-
mente, anche 9u nostra intelligenza, fcf
infatti indispensabde, servendosi del jo\ .
non solo governare correttamente il mo-
vimento dell’astronave ma, soprattutto,
rintracciare e ricomporre i numerosi pez-
zi di un oggetto precedentemente espio
so, prima che se m impossessino i
ne mici.
Per raggiungere In scopo sono costan-
temente presenti sullo schermii, oltre al
radar che consente perfino di zoomare la
nostra posizione, altre otto "icone"' (por-
zioni di schermo in alta risoluzione),
Queste, toccate dal joy, forniscono varie
informazioni oppure, a seconda dei casi,
eseguono comandi opportuni per ciò che
riguarda combattimenti, tempeste, at-
tacchi nemici, esplorazioni di città o atti-
vazione di scudi.
Due forme d'onda* rappresentanti tu
pulsazione del nostro cuore e quella /.oid
(che si riferisce ai danni subiti) completa-
no le informazioni necessarie a condurre
con successo il gioco che rappresenta un
felice compromesso tra un classico game
d azione e il genere "ad venture"
Game Killer
uesla carmcci;! della Masierlromc
rappresenta senz'altro una novità nel
campo dei videogiochi.
Inserita, a computer spento, sul retro
del ( 'h4, consente di caricare, da nastro
oppure disco, un qualsiasi vidcogioco e
dì giocarlo come a! solito con un unica
sostanziale differenza: é possibile elimi-
nare il riconoscimento delle collisioni
sprite-sprite, quelle sprite-caraiieri op-
pure qualsiasi collisione.
Il vantaggio di un tale provvedimento
e evidente: poiché la maggior parte dei
giochi uiiliz/a la collisione degli sprìte
per incrementare le penalità, m questo
modo il gioco non 'si accorge deiravve-
nuta collisione e il numero di "vile ria-
mane sempre lo stesso ?
I" ovviamente possibile ripristinare le
condizióni normali del gioco in qualsiasi
momento premendo il tasto incorporalo
nella cartuccia.
Game Killer risulta utilissimo per ve-
dere. finalmente, le schermate mai gio-
cate di videogiochi quasi impossibili. Do-
po aver effettuato alcune prove, ci sem-
bra però doveroso precisare che non in
lutti i v ideogiochi la cartuccia ha
funzionato.
In alcuni game, inoltre, dato che viene
disabituato il riconoscimento di qualsiasi
collisione, è necessario ricorrere spessir
alla continua abilitazione e disabilita/io-
nc della cartuccia in modo da continuare
a "vivere 1 quando tl nemico ci colpisce e,
al contrario, di mani! catare h nostra pre-
senza nei casi in cui è necessario "tocca-
re 1 ' particolari oggetti oppure colpire il
nemico Gprite) con nostre bombe e
proiettili (ancora spole I per totalizzare
punteggi a nostro vantaggio.
10 - Commodore Computer Club
RECENSIONI
Commodore 64
Phantom
of thè asteroids
U ii ennesimo £iivi> in cui è necessario
colpire i nemici evitando di esser toccati
a di entrare in collisione con raggi lasero
spigoli del labirinto Simpatica là musi-
chetta di accompagnamento e abbastan-
za realistico il movimento dell'omino
quando si solleva grazie al reattore del
suo zaino.
Ideale per chi non è ancora stanco dei
classici videogame che richiedono molta
destrezza ed abilità nel manovrare il joy-
stick
C/16 Winter Olympics
vevamo affermato, tempo fa. che un
videogioco per C/16 non avrebbe mai
potuto competere con analoghi videoga-
me per 064 perchè quest ultimo è dota-
to di aprite dalle possibilità
impareggiabili.
Questo nuovo gioco della Mastertro-
mc, invece» ci smentisce e ne siamo felici.
In effetti non è altro che una copia più
o meno fedele del popolarissimo Winter
Games (per C/M) dotato di un'anima-
zione che sicuramente sfrutta al massimo
le capacità grafiche del piccolo
computer.
Vi sono ben sei tipi di gare da caricare
una alla volta.
Specd Skating, che è una gara di velocità
sui pattini contro li computer; Ski dump,
classica gara di salto dal trampolino; Cre-
sta Run. simulazione piuttosto realistica
della nota competizione su Bob; Ski Sla-
lom, che non necessita di spiegazioni;
Curling, gara di howiig su ghiaccio;
Down Hill, simile allo Slalom ma gli og-
getti da evitare sono gli alberi c non le
bandierine.
Huona la grafica, specie se si dispone
di un TV color, e soddisfacente Tanima-
rione che sembra quasi realizzata, come
dicevamo prima, ricorrendo alla tecnica
degli sprite.
Commodore Computer Club - ) ì
Su ogni numero di Commodore
Computer Club compaiono un
paio di pagine dedicate a una
dozzina di micro programmi
lunghi una sola riga.
É’ ovvio che non è possibile
pretendere effetti sorprendenti
in listati cosi brevi, tuttavia, svi-
luppando t'idea su cui gli stessi
programmi son basati è possi-
bile pervenire a realizzazioni di
tutto rispetto ricorrendo, è inu-
tile dirlo, a qualche riga in piu.
Particolarmente interessanti
per i principianti, spesso utili
anche per gli esperti, i micro
programmi dì una sola riga rap-
presentano una valida "pale-
stra 1 ’ per abituarsi a concentra-
re in poche, essenziali istruzio-
ni la soluzione di problemi
complessi soìo in apparenza.
'i. - 4'
Avvertenza:
Come specificato altrove (nel riquadro di
queste pagi ne) > alcune righe occupano
più di SO caratteri. Nulla vieta, salvo ra-
rissime eccezioni, di digitare gli stessi co-
mandi in due o più righe Basic numerate
in successione. Eviterete, in Lai modo, dì
ricorrere alle abbreviazioni e dì modifica-
re con maggior facilità i comandi even-
tualmente digitati in modo errato.
Listati per li solo C/128
# i
Errori. Tutti i messaggi dì errore del C'
128 verranno visualizzati grazie a questa
riga.
1 F0RI-1TD41;
PRINTERREC I 3 : NEXT
#2
Typewrìter. 13 vostro computer trasfor-
mato in una macchina da scrìvere con
tanto di campanellino per ogni tasto
premuto,
1 PRINTCHRS 1 164 3CHR$
C 1573 ; : GETKEYAS;
PRINTCHR$C73r=t$; :GDT01
# 3
G064 con SYS,. Lo sapevate che esiste un
altro modo per passare, da C y ì28. in mo-
do 064? Eccolo:
1 SYS6S357
#4
Ridefinizione Help. Anche il tasto HELP
può essere indefinito: provare per
credere...
1 DATA 71,73,54,58
, 13: FOR T-0 TO 4:
READ A : POKE 4168+
T , A : NEXT
#5
Disegni musicali. Un disegno accompa-
gnato da] campanellino ottenuto sia con
CHR$(7) che con Control * l G'\
1 GRAPHIC1 » 1 :
FORI ^1TD100STEP5 :
boxi , 70, i00,aae 3 60 , i
: PRINTCHRÌC73 : NEXT :
GETKEYAS: GRAPHICS
# 6
Reset. La SYS di reset del (7128 (usatelo
anche per il BOOT).
1 TEMS-65341: SYSTEMS
Per C/64 e C/ 128
# 7
Riempiscile rimi Basic 64/128. Una riga
per riempire lo schermo con un
carattere.
1 CLR :
FDHI-10£4TCie023:
POKE I , 65: NEXT
# 8
RiempÉsehermo L.M. 64/128. Lo stesso
programma di prima scritto, però in Lin-
guaggio Macchina. Visto che velocità?
1 DATA 163,65, 162,0
, 157,0,4,157,0,5,
157,0,6,157,535,6
,535,500,241 ,3B:F
□R I-B135 TO 8511
: READ A: POKE I , A:
NEXT : SYSB192
Per C/16 e C/12*
# 9
PRINT Monitor, Una carenza de IT utility
(incorporata) * Monitor” del C/128 e del
C/16 è quella di non avere il comando
Print per stampante. Ovviamo airincon-
veniente con questo microlistato. Una
volta dato il RUN qualsiasi comando im-
partito provocherà la stampa su carta
(cs. D 080(1).
1 0PEN4, 4; CHD4: MONITOR
Trucchi e trinchetti per C/64
Un gruppo di “una riga' 1 e consigli vari
per effetti insoliti. Listati c Poke tutti da
provare e utilizzare nei propri program-
mi, magari per sperimentare nuove for-
me di protezione.. .
#10
LIST senza numeri. Qualsiasi vostro li-
stato apparirà, ma senza i numeri dì
linea.
1 POKE £2,35:1151
# li
Velocità cursore. La locazione 56325
contiene la velocità del cursore: modifi-
candola si ottengono interessanti effetti.
1 INPUT "(N0RM-48D
Commodore Computer Club ■ 13
VELOCITA ’ Cl-ESS)
*’;U;POKE SB325.U
# 12
Typewriter, il vostro C'64 non accetterà
alcun comando grazie alla semplice mo-
difica della locazione 120.
1 PQKE 150,0
# 13
# 15
Reset colori. Come tutti (!) sanno, il co-
mando SYS 64738 reietta il computer
inizializzando anche i colori; tramite
questa riga potrete resecarlo ugualmen-
te, mantenendo nel contempo i colori
precedentemente settati,
1 POKE 53580, 1 ; POKE
53581,1: SYS 647B7
Michele Maggi
Due suggerimenti
dì Mario Cri scucio - Roma
Autorepeat tasti* Con Poke 650,128 si
abilita j| Repeat automatico per tutti i
tasti
Recupero programma* Con questo grup-
po di comandi, da digitare dopo un invo-
lontario NEW oppure un’accidentale
pressione del tasto di Reset (se io posse-
dete }, si recupera il vecchio programma.
Attenzione: ù necessario digitare i co-
mandi su una sola riga SENZA farli pre-
cedere del numero di riga Basic.
POKE2050,!: SYS42291:
PO KE45*PEEK(34 ) :
POKE46, PEEK(35);CLR
LIST di*,- numeri. Verranno listati solo i
numeri di linea, A che cosa può servire 1
Decidetelo voi!
I POKE 774,0
# 14
Reverse Poke. Un altro modo per ottene-
re scritte in reverse.
1 POKE 199 , 1 : PRINT”
HDDO REUERSE ATTI
UATO ! ! "
Nota Bene
Alcune righe tra quelle pubblicate sembrano possedere più di 80 caratteri e, come tali, inaccettabili dal computer.
Nei casi in cut ci si accorga che la riga è troppo lunga, è necessario ricorrere alle abbreviazioni dei comandi cosi come indicato
nell'appendice specifica riportata nel manuale del computer in vostro possesso.
Ad esempio invece di scrivere FRINÌ è possibile abbreviare col punto interrogativo (?). Invece di POKE potete scrivere il
carattere ,l P’ f seguito dal carattere che viene visualizzato premendo contemporaneamente il tasto shift insieme con 'O Tutte le
abbreviazioni possibili, io ripetiamo, sono riportate in una delle appendici di qualsiasi manuale Commodore.
Nel caso sbagliate a digitare i mie roti stati che superano, in lunghezza, gli ottanta caratteri (SYNTAX ERROR o altri tipi d;
erore), è necessario, per Sicurezza, ribatterli per interne non apportare modifiche alla riga visualizzata con l'istruzione LIST
r
La partecipazione dei lettori è gradita e compensata, in caso di pubblicazione, con materiate della
Systems editoriale (libri, fascicoli arretrati, abbonamenti, eccetera).
Inviate le vostre 1 RIGA, purché nella misura di almeno dieci per volta. Non cr è infatti possibile
raggruppare i (moltissimi) micro- program mi che pervengono singolarmente in Redazione.
Inviate i vostri lavori su carta, (meglio se su nastro) corredati, ciascuno, dì una breve spiegazione sulla
funzione che compiono, proprio come li vedete pubblicati in queste pagine*
Ricordate dì indicare chiaramente nome, cognome, via e città, e indirizzate a:
Commodore Computer Club . Viale Famagosta, 75
SYSTEMS EDITORIALE Rubrica 'lRiga 20142 MILANO
14 -Commodore Computer Qui?
COME METTERE
D’ACCORDO
UN DO
Vuoi sapere di più sulle tastiere elettroniche Antonelli?
| Compilo e spedisci questo coupon a: ANTONELLI
Viti Filollrano - 60027 Osino (AN) Riceverai un completo catalogo.
I NOME COGNOME
VIA . N"
CAP. CITTA'
1
Antonelli
MUSICA E CREATIVITÀ, DA SEMPRE
No, non è fantascienza.
Stiamo solo parlando
delle fantastiche tastie-
re elettroniche Antonelli.
Una novità che ti per-
mette di dialogare con
l'interfaccia dì un com-
puter per comporre, me-
morizzare e riascoltare
tutta la musica che vuoi.
E questo è solo t'inizio.
Le tastiere elettroniche
Antonelli sono una vera
orchestra con tantissimi
strumenti e voci diverse,
possono essere col lega-
te a impianti hi-fi per ot-
tenere una fedeltà e una
potenza di suono mai
viste. In più sono facili
da usare e belle da mo-
strare agli amici. Il prez-
zo? Questo sì è da fan-
tascienza: da L. 250.000
(IVA esclusa).
? II
|!
t
*
I PF i
■ + r
B
=■
-“■o
1
L
I F
= 1
[ 'W
>
~
1-
1 ,fc
Kr
LC
*
1 'ÌMé
■ * '
5
B sCN
E r ■ P—
a
. i
•-r
*-
i_ì
«
Uso di alcune Poke per C 164 di Giovanni Chiappe * Imperia
Ecco una simpatica tabella da sperimentare ed utilizzare in più occasioni:
□□manda
Effetto
Ripristino
Poke 775,200
Inibisce
comando List
Poke 775, 1B7
Poke 908,239
Disabilita
tasto Run/Stap
Poke 808,237
Poke 800,225
Disabil, List
Run/Stap e Rest»
Poke 008,237
Poke 649 , 0
Disabilita
la tastiera
Poke 649,10
Poke 818 , 32
Disab. comandi
Save e Load
Poke 810,237
ASSISTENZA HARDWARE
(8.30-12, 15-18.30; sabato 9-12)
V. FRA CRISTOFORO, 2 - 20142 MILANO - (02) 8434368
riparazione
microcomputer
la periferica insostituibile
per il tuo computer
PAIO è il nuovo, rivoluzionario Programma Autodidattico Interattivo Computerizzato presentato dalla
CO.PE.CCX che fa di te un vero programmatore. Per analogia potremmo dire che non ci limitiamo ad inse-
gnarti una iingua/linguaggio ma ti prepariamo come un interprete/progxammatore.
L’originalità del metodo consiste ne lHnter attività allievo-macchina, che unisce alla validità didattica una
forte carica di partecipazione. Seguendoci potrai renderti subito conto delle innovazioni PAIC, della possi-
bilità di "sfogliare” il video (avanti e indietro) come un libro: un video-libro dal dialogo continuo, stimolan-
te che insegna a creare piacevolmente fin dairinizio.
Benché il nostro metodo sia definito "autodidattico”, in ogni caso Tlstituto CQ.PE.CO mette a tua disposi-
zione per 24 mesi (ben oltre la durata del Corso PAIO) un servizio di assistenza didattica e consulenza di
esperti che ti seguiranno a distanza.
Pensaci, c 3 è nessun altro che ti offra tanto?!?
Ecco perchè PAIO è NUOVO, RIVOLUZIONARIO, FACILE:
- È BASIC ma non è solo linguaggio
- È un video da sfogliare
- Ti porta dalla pratica alla teoria, dalla teoria all’azione
- In qualsiasi momento la nostra Scuola è pronta ad assisterti
- Ti rende protagonista nel mondo della scuola e del lavoro
- PAIC un prodotto, un'idea, un servizio CO.PE.CO,
Ti verrà dato in dotazione un COMMODORE 64 o mi PLUS completo, se già noti Jo possiedi.
CQ.PE.CO. - Via Torino, I - 35030 TENGANOLA (PD)
SÌ, desidero ricevere a casa GRATIS E SENZA IMPEGNO
informazioni sul corso PAIC.
COGNOME
NOME
VIA
LOCALITÀ
C.A.P._ PROV. TEL. ETÀ
PROFESSIONE
HARDWARE
COMMODORE 128
C 128 , impressioni
a “caldo”
Un breve articolo utile a chi è intenzionato ad
acquistare il nuovo modello della
Commodore.
di Claudio Baiocchi
L e precedenti esperienze dell’autore
sono relative al Vie 20 ed al Plus/4, Ven-
gono illustrate le pome impressioni {fa-
vorevoli c sfavorevoli) sul nuovo compu-
ter appena acquistato.
La tastiera
Il C/128 ha un aspetto decisamente più
"professionale” rispetto ai modelli infe-
riori. A ciò contribuiscono sia il tastieri-
no numerico sia i numerosi tasti di colore
grigio posti in alto, suddivisi in quattro
blocchi di quattro ciascuno.. Quelli del-
l’ultimo blocco svolgono funzioni diverse
a seconda se sono premuti da soli o insie-
me col tasto Shift,
Il gruppo più a destra sostituisce \ tasti
F1..F8 già presemi su tutti i modelli in-
feriori. La novità, rispetto al Vie 20 e al
C-64, è costituita dal fatto che la loro
programmabilità è immediata, grazie al
comando KEY già esistente, del resto, su
C-16 e Flus/4.
I quattro tasti dei blocco successivo,
(procedendo da destra verso sinistra) so-
no un duplicato dei tasti di movimento
del cursore e si rivelano comodi rispetto
ai due soli tasti (da premere con o senza
Shift) presenti nel C-64 e Vie 20. La loro
posizione, però, non è delle più accessi-
bili ma, si sa, è solo questione di abitudi-
ne. Questi tasti, così come gli altri otto
che descriveremo, e quelli del tastierino
numerico, sono disattivati quando si la-
vora nel “C-64 mode” (che d’ora in poi
chiameremo, più sbrigativamente, "mo-
do 64”).
Segue un tasto “No Scroll”: premen-
dolo durante lo scrolìing di un listato
oppure l’output di dati sullo schermo, la
visualizzazione si arresta. Premendolo
ancora l'output riprende con un effetto
analogo a quello che si ottiene premendo
18 - Commodore Computer Club
HARDWARE
contemporaneamente i tasti Control e
"S": questa possibilità era già presente
sul Plus/4, Volendo, invece, limitarsi a
rallentare lo scrolling, basta tenere pre-
muto il tasto Cbm* il prime» basso a sini-
stra, proprio come avveniva su C-16 e
Plus/4, Dovrebbe esser noto che sul vie
20 e sul C-64 è il tasto Control che svolge
quest'ultimo ruolo.
13 tasto successiva è, come quello di
Shift- Look, un tasto che. attivabile solo
in modo 128, resta inserito dopo la pres-
sione: se abbassato, determina l'output
su video a 80 colonne ma non è utilizzabi-
le con un normale televisore: occorre la-
vorare con un monitor.
Segue il tasto Line-Fecd, utilizzabile
solo in modo CP/M, mentre il quarto
tasto del blocco è quello di Help: tale
comando, già implementato nel Basic
del C-Ih e del Plus/4, è utilissimo in fase
di debugging. Riservargli un tasto può
sembrare eccessivo, dato che basta digi-
tare “H'‘ seguita da Shift + "E" c dal
tasto Return per ottenere Io stesso effet-
to, ma su tale punto torneremo più
avanti,
Segue il tasto Caps-Lòck* simile allo
Shift Look dato che viene disinserito dal-
la successiva pressione, ma comunque
non un doppione. Agisce, infatti, solo
sulle lettere, e non sulla prima riga della
tastiera (numeri e simboli sovrastanti),
Segue il tasto Alt di cui il manuale dà una
descrizione assolutamente inutilizzabile:
apparentemente dovrebbe servire a l 'n-
defmire" la tastiera ma. come avveniva
per i tasti FL..F8 sul Vie 20 e C-64, non
c'è il minimo accenno al suo uso.
11 penultimo tasto è Tab: premendolo*
il cursore si sposta alla posizione della
tabulazione successiva. Anche qui il ma
nuale accenna alla possibilità di fissare
autonomamente le tabulazioni, ma non
dice come fare. I tasti Tab e Alt dovreb-
bero* comunque* esser utilizzati , più che
altro, in modo CP/M,
LVtimo tasto è FEscape che non co-
stituisce una novità per utenti di 016 e
Plus/4 * salvo che per la posizione che
occupa. Raccontare ai possessori di Vie
20 o C -64 tutte le interessantissime possi-
bilità offerte da questo tasto è impossibi-
le per mancanza di spazio.
Sul tastierino numerico c e poco da
dire: oltre alle cifre* contiene anche il
punto (cioè la virgola) decimale, ì tasti
" F h c “ — ”, ed un tasto Enter che fun-
ziona come il Return. Da notare che
l’Enter ed il tasto dello zero sono di di-
mensioni doppie rispetto agli altri,
E con ciò abbiamo finito il giro dei tasti
“nuovi 1 *.
Sui tasti ^vecchi'** oltre al fatto già
segnalato, concernente il rallentamento
dello scrolting (premere Cbm anziché
Control) c'è poco da dire: rispetto a C-16
e Plus/4 Mino scomparsi i tasti di Flash -on
e Flash-Off e. ovviamente, le comode
funzioni associate. Altri tasti hanno ri-
preso la posizione che avevano su Vie 20
c C-64* come quelli dì elevamento a po-
tenza c dì freccia a sinistra; è infine riap-
parso il tasto di Restorc che, premuto
insieme con Run/stop, è un'alternativa al
pulsante di reset; alternativa talora più
comoda* dato che il pulsante di reset, se
premuto da solo, ha lo stesso effetto che
spegnere e riaccendere il Computer; se è
invece premuto insieme col tasto Run /
stop non annulla li programma in memo-
ria* ma porta in ambiente ''Monitor" e..,
maltratta il puntatore allo stack: tornati
al Basic (con X seguito da Return) è
prudente fare un CLR,
Concludiamo la panoramica della ta-
stiera proprio col tasto Run/Stop: come
già sul C-16 e sul Plus/4, se viene premu-
to con lo Shift* provoca il caricamento e
il successivo lancio (Run) del primo pro-
gramma presente su disco anziché su na-
stro. come per il Vie 20 ed il C-64, Natu-
ralmente la variante è effettiva solo nel
modo 128.
Si tratta* comunque, di una comodità
pericolosa; se vogliamo, ad esempio* fer-
ri! are un listing ed il dito che preme Run/
stop tocca anche il tasto Shift, oppure lo
Shifi-Lock (che sono vicinissimi), si ri-
schia di perdere il programma in memo-
ria, Anche se si fa in tempo a premere
ancora Run/Stop (da solo!) per evitare il
caricamento del programma, non si può
comunque evitare il successivo Run "in-
corporato " nel tasto* che farà quindi per-
dere tutti i dati elaborati prima dell'in-
fortunio. La situazione è comunque leg-
germente migliorata rispetto a C-16 e
Plus/4, dove anche il tasto Cbm, unito a
Run/*Stop, aveva Io stesso effetto. Si noti
che precauzioni quali togliere il disco dal
drive oppure tenerlo spento, pongono
rimedio al primo guaio (non si perde il
programma in memoria) ma non al se-
condo: eventuali dati già elaborali saran-
no comunque distrutti dal Run. Un truc-
co che permette di evitare tali rischi sarà
indicato tra poco.
Il Basic
Terminato l'esame sommario della ta-
stiera diamo un'occhiata, ancora più
frettolosa* al Basic,
L'elenco delle parole riservate è im-
pressionante: ben 171 elementi, anche se
alcuni (Off e Ouit) sono seguiti da un
asterisco ad indicare che non sono in
realtà implementati.
Altri comandi sono un,., falso in atto
pubblico, almeno se le cose funzionano
come sui modelli precedenti: ad esempio
Gel # non è un vero comando (è codifi-
cato con i due tolteti separati di Get c di
#); idem dicasi di GetKey* che può
essere abbreviato spezzando le abbrevia-
zioni di Get e di Key. Ciononostante il
panorama si presenta interessante: pa-
recchi comandi relativi alla gestione del
drive, riconoscibili dalllni/iate "D" (ol-
tre a Dload, Dsave, DS, DS$. Directory
già presenti su C-16 e Plus/4), troviamo
Dclear* Dolose, Dopcn, Dsave, Dverify.
C’è anche un Catalog equivalente a Di-
rectory* ed inoltre Append, Collect,
Concai* Copy* Header, Record, Rena-
rne* Scratch, che permettono di ottene-
re, con sintassi elementare, risultati co-
munque ottenibili sul Vie 20 e C-64. an-
che se con complicate operazioni attra-
verso il canale 15 del drive
Vi sono anche comandi decisamente
nuovi quali Bload, Root* Bsave, e Run
seguito dal nome di un programma.
Molto ampliata, anche rispetto a C-16
e Plus/4 dove comunque era già vasta, è
Commodoro Computer Club -19
HARDWARE
la gamma dei comandi dedicati al suono
e alla grafica. Pur non avendo avuto il
tempo di sperimentare tutti i nuovi co-
mandi, non ho saputo resistere alla ten-
tazione di sperimentarne alcuni associati
alla gestione degli sprite. Ho provato una
certa delusione nel constatare Che i co-
mandi Rump e Collision sono scarsa-
mente utilizzabili dato che non serve a
nulla scoprire rapidamente che una colli-
sione è avvenuta, se poi si prendono le
decisioni conseguenti con la lentezza
cronica del Basic, Entusiasmo suscita,
invece, la facilità con cui si possono defi-
nire, modificare cd animare gli sprite; in
particolare lo “Sprdef-Mode” è
fantastico...
Da un punto di vista meno ludico, è
apprezzabile la presenza di comandi
strutturati come Begim„Bend all'inter-
no di una IP' o di una Else (oltre ai vari
DO, Loop, While, Unti! già presenti su
C-16 e Plus/4); comandi quali Feudi,
Bank, Pointer, Stash, Swap (oltre ad un
MONITOR più ampio di quello di C-I6
e Plus/4) saranno certo molto apprezzati
dagli “smanettoni" e il fatto che la de-
scrizione del manuale sia molto scarna
sarà per essi una sfida. . .
Interessante è infine la presenza del
comando Fast {annullato da Slow) che,
oscurando lo schermo c risparmiando di
conseguenza il tempo dedicato alla sua
gestione, porta ad un sensibile aumento
della velocità di esecuzione. Da test ef-
fettuati su cicli For...Next sembra che la
velocità doppia cui procede il clock corri-
sponda effettivamente ad una velocità
quasi doppia di esecuzione del Basic. T a-
le risultato era ottenibile anche su C-16 e
Plus/4, ma a prezzo di complicate mano-
vre di Poke.
Notiamo ancora la possibilità di lettu-
ra diretta di joystick, paddle c penna
luminosa (senza necessità di PEEK-are
qua e là) e la presenza di comandi dì
aiuto alla stesura cd al debugging dei
programmi, del resto già presenti su C-16
e Plus/4. Citiamo solo Àuto, Delete, Re-
number, Help, Tron, Troff, Trap,
Resumé.
Apprezzata è la presenza (finalmen-
te!) deiroperatore XOR (cioè un Or es-
clusivo) e la possibilità di output format-
tati grazie a Using e Pudef.
Chiudiamo questa breve carrellata sul
Basic con una avvertenza: purtroppo nu-
merose abbreviazioni cui gli incalliti
utenti Commodore erano abituati, sono
da abbandonare: “P" seguita da Shift +
E non abbrevia piu PEEK, bensì PEN; P
seguita da Shift + O sta per FOT e non
per POKE e così via. E’ una scelta in-
comprensibile, che i progettisti della
Commodore avrebbero potuto evitare
con un minimo sforzo. Altro imbarazzo
potrebbe creare la nuova sintassi della
funzione FRE, associata alla ripartizione
a priori della RAM in una zona-
programma (FRE(0) informa sulla me-
moria resìdua per la scrittura di nuove
linee Basic) e in una zona^- va riabili
(FRE(l) fornisce lo spazio a disposizione
per nuove variabili).
Questa rapida carrellata volge ormai
a! termine e la concludo con un trucco da
PEEK -POKE -maniaco: per evitare i
guai descritti, relativi al tasto Run/Stop,
impariamo a disattivarlo eseguendo:
FOR X =4159 TO 4167;
PQKEX,32:NEXT
In realtà si può fare di meglio: invece
di disattivare il tasto, possiamo ripro-
grammarlo. In modo analogo possiamo
ri programmare addirittura il tasto
HELP. In altre parole; gli 8 tasti funzio-
nali sono in realtà IO...,
Benché l'operazione sia piti complica-
ta della programmazione dei tasti
FL..F8 (per questi basta lavorare in Ba-
sic con il comando Key), possiamo in
effetti, programmare anche i tasti Run/
stop ed Help. Passando al MONITOR e
digitando:
M 1000 (Return)
si vedranno apparire, a partire dalla loca-
zione $100 A, le stringhe associate a
F1...F8, seguite da una stringa che è
quella associata a Run/Stop che è Fab-
breviazìone di Dload, seguita da
“*,RUN. Il puntino sta per Return. Su-
bito dopo si trova la stringa HELP, Nelle
locazioni da $1000 a $1009 sono riportate
le lunghezze delle 10 stringhe.
L’operazione di disattivazione sugge-
rita corrisponde a inserire un gruppo di
"‘spazi” nella stringa associata a Run/
Stop. Naturalmente, modificando (da
MONITOR o da Basic) le lunghezze ed i
contenuti di quelli che possiamo a buon
diritto chiamare ‘Tasti funzionali F9 e
FIO”, possiamo fare in modo che un
qualsiasi comando sia associabile ni dieci
tasti funzione.
20 - Commodore Computer Club
L’UTILE
C 128
■ . ■■
mmk.
Come aumentare la velocità di
elaborazione del CI 28, anche in
“modo” 64
dì Michele Maggi
Commodore Computer Club - 21
L’ UTILE
O^omc risulta dal manuale in
dotazione dd CJ2&, esiste la possibilità
di stabilire la frequenza di lavoro dei
computer mediante due istruzioni:
FAST che impone al calcolatore di
lavorare alla frequenza di 2 megahertz
(MHz),
Slow che lo riporta alta condizione
normale, vale a dire quella di un solo
MHz.
In quali casi conviene utilizzare Luna
o l'altra frequenza di lavoro?
Notiamo, anzitutto, che quando un
programma Basic incontra Istruzione
"Fast”, accelera notevolmente Fesecu-
zione delle istruzioni successive, tranne
quelle di Input/Output (I/O) che, vinco-
late ovviamente alla velocità intrinseca
delle periferiche (stampante, drive), non
possono venire accelerate in alcun mo-
do.
Il principale inconveniente causato
dall'Istruzione “Fast” è che si perde
completamente il controllo del video
perche la gestione dello schermo è una
delle operazioni che richiedono più
tempo.
Questo fatto spiega perché, durante il
caricamento di programmi da nastro, il
video “scompare”, e anche perché molte
utility del tipo Turbodisk (equivalenti ai
vari Turbotape, ma per floppy disk)
fanno scomparire il video per accelerare
le operazioni di caricamento,
L’istruzione Fast, quindi, si rivela uti-
lissima quando all’interno di un pro-
gramma, vengono eseguite elaborazioni
molto lunghe e complesse che, inevita-
bilmente, costringono a notevoli attese.
Un esempio classico può essere l'or-
dinamento alfabetico o numerico di un
vettore che, a parte il ricorso a varie tec-
niche che possano accelerarne l'esecu-
zione, rimane sicuramente una delle
operazioni più lunghe in assoluto.
Grazie a "Fast” il tempo di ordina-
mento di un vettore viene praticamente
dimezzato. Compiuta l’elaborazione si
può riprendere il controllo dd video con
un semplice comando di li Slow‘\
FAST in modo C64
Tutto quanto è stato detto finora, pe-
rò, non costituisce una novità dato che
si riferisce ad informazioni riportate sul
manuale. Il caso vuole, però, che esista
la possibilità di portare il C128, operan-
te in modo 64, a lavorare a 2 MHz come
se gli fosse stato impartito il comando
“Fast”, non supportato, come è noto,
dal misero Basic 2.0,
Vediamo ora come si può simulare il
comando con una semplicissima POKE.
La locazione 53296 (in modo 64) con-
tiene, normalmente, il valore 252. Inse-
rendo, mediante Poke, il valore 253,
perdiamo il video (nel senso che appari-
ranno figure del tutto incomprensibili)
ma avremo la possibilità di lavorare ad
una velocità nettamente supcriore al
normale, È ovvio che, terminata Pelato
razionc, sarà possibile riprendere il con-
trollo dd video con:
POKE 53296,252
Quanto affermato vale, però solo per
Il C64 “contenuto" nel CI 2$ e non per
un C64 “normale”. Tale considerazione
potrebbe far nascere una polemica sulla
reale compatibilità tra CI 28, utilizzato
in modo 64, e il software destinato al
Commodore 64, C’è qualche lettore in
grado di far notare altre. differenze, più
o meno vistose, in tal senso?
Il piccolissimo programma di sort (or-
dinamento di un vettore) ha lo scopo di
dimostrare quanto detto finora.
li programma
Si tratta di un semplice e banale Sort
che non ha particolari pretese di velocità
ed è anzi per questo che fa al caso no-
stro. Il suo funzionamento si busa sulla
generazione di N numeri casuali (“N” è
stabilito dall’utente) e su! loro successi-
vo ordinamento in senso crescente.
Alla fine dell’elaborazione viene vi-
sualizzato il tempo impiegato e, subito
dopo, vengono visualizzati i valori, In
modo 128 “normale”, cioè senza Fast,
per ordinare EOO numeri si impiegano
poco meno di 3 minuti, mentre col co-
mando ve loci zzato re, occorre circa un
minuto e mezzo,
Il programma si basa subordina men-
to di numeri generati casualmente e il
tempo impiegato, ad ordinarli è influen-
zato notevolmente dal grado di "disor-
dine degli stessi valori. In modo 64, sen-
za l’istruzione POKE 53296,253, occor-
rono mediamente due minuti c mezzo
mentre, se si aggiunge l'istruzione in
questione, il tempo scende a un minuto
e dieci secondi circa.
Anche per i tempi ottenuti in modo 64
valgono le considerazioni precedenti, pur
se è possibile osservare che in modo 64
le operazioni si svolgono con una veloci-
tà lievemente superiore.
Funzionamento del programma
Le linee 10-30 si occupano della ri-
chiesta del numero dei valori da genera-
re casualmente e da ordinare subito do-
po. Viene anche effettuato un controllo
sul numero digitato, e dimctìsionato il
vettore N (E).
La riga 40 genera numeri casuali
La linea 50 iniziaiizza la variabile TIS,
Le linee 60-100 eseguono il sort vero c
proprio (che non illustriamo in dettaglio
perche non è questo lo scopo del presen-
te articolo).
Le lince 1 10- 1 30 visualizzano il tempo
TIS e 1 valori ordinati.
Per velocizzare il tutto basterà ag-
giungere le seguenti linee:
In modo 128:
55 FAST e
115 SLOW
In modo 64:
55 POKE 53296,253 c
115 POKE 53296,252
Altre prove possono esser falle dal
lettore, tra cui suggeriamo quella di ve-
rificare il corretto funzionamento del-
l’orologio interno che sovra in tende alla
gestione delle variabili “Tl“ c “TI$.
1 REM ORDINAMENTO IN SENSO CR
ÉSCENTE DI UN LETTORE NUtlER
ICO
2 :
10 INPUT “QUANTI UALDRI' J ;E
B0 I F E< E OR E>7500 THEN 10
30 Diti NCE> :PRINTCHR*C1475
40 FOR 1-1 ID E ; N£ n-JNTf RNDU
1*1B00)*1 : NEXTl
50 PRINT"5T0 ORDINANDO 1 NUME R
! . , . TIS-”00000-0”
60 C-0
70 POR 1-1 TO E-1:IF Ntn<-Ntl
+1) THEN 00
8C H-Ntl + l NCI+1 )-N< 1 >: Ntn-M
:C-1
90 NEXTI
.100 I F C<>0 THEN 60
11G PRINT “TEMPO IMPIEGATO "TI* : P
R INT "FREMÌ UN TASTO'"
1£0 GEI AS;1F THEN 1P0
130 FOR 1*1 TO ErPRININC n :NEXT
22 - Commodore Computer Club
OLTRE IL BASIC
COMMODORE 64
Ordinamento
ultraveloce
di un vettore
Come ridurre a pochi secondi
un'elaborazione che può anche richiedere
ore di lavoro.
di Sorgati ì
1 1 programma che presentiamo in que-
ste pagine consente di ordinare in senso
crescente tutti gli elementi di un vettore
numerico predefinito, E' in grado, ovvia-
mente, di sistemare anche gli elementi di
un vettore stringa in ordine alfabetico.
Descrivere il funzionamento di questa
routine in linguaggio macchina (LM) sa-
rebbe impossibile. Ci limiteremo* per-
tanto, a decriveme ["utilizzo in modo tale
che anche un principiante se ne possa
servire,
* Caricate, anzitutto, il programma Sort
pubblicato in queste pagine facendo be-
ne attenzione a trascrivere con grande
precisione tutti i valori riportati nei Da-
ta: un minimo errore può portare airin-
chiodamelo del sistema.
• Registrate e vendicate il lavoro fatto.
In caso di errore sarà più agevole ricari-
carlo e rintracciare lo sbaglio,
* Dopo aver dato il Rum attendere al-
cuni secondi l'allocazione dei Data. Se
tutto è in ordine dovrebbe comparire,
alla fine, il messaggio “Sor! attivato"** In
caso contrario un mesto messaggio av-
vertirà di un errore di digitazione,
• Se, quindi, avete ben digitato il listato,
da questo momento, fino a che non spe-
gnerete l'apparecchio, avrete a disposi-
zione un nuovo comando Basic che ha,
come sintassi, la freccia a sinistra (primo
Commodore Computer Club - 23
OLTRE IL BASIC
tasto in alto a sinistra) seguito dal nome
della variabile assegnata al vettore che sì
intende ordinare in senso crescente.
Per meglio comprendere il funziona-
mento del nuovo comando, caricate il
programma Demo e studiatelo con
attenzione:
Riga 12: chiede il numero di elementi che
desiderate assegnare al vettore stringa
A$ (attenzione a non esagerare, per non
incorrere in un "Out Of Memory
Error").
Riga 20: crea gruppi casuali di stringhe
alfanumeriche e le assegna ai singoli ele-
menti del vettore.
Riga 50: attiva il nuovo comando e vi-
sualizza il tempo impiegato ad ordinare
alfabeticamente (o numericamente) il
vettore.
Riga 60: stampa su video il vettore per-
fettamente ordinato.
E* ovvio che il lettore, invece di A$„
può indicare il nome che più gli aggrada.
L'unica limitazione è costituita dal fatto
che non è possibile applicare il comando
a vettori pluridimensionali.
ALLARME
ROSSO
(per ì principianti)
Nel digitare righe di programma ba-
sic che contengono istruzioni DATA,
è piuttosto facile incorrere in errori di
digitazione Supponiamo che un ipo-
tetica linea basic numerata con 1 200
debba contenere i tre valori: 123,
456. 709 Ecco alcuna esempi di erro-
ri più frequentemente commessi
1200 DATA, 123,456,789
C h é una virgola dopo la parola
' DATA' 1 I dati letti dal computer so-
no. in questo caso, quattro: 0, 123.
456, 709 Se. infatti, non figura alcun
carattere dopo ['istruzione DATA, au-
tomaticamente viene assunto il valo-
re nuilo (0)
1200 DATA 123.456,789
In questo caso, dopo il numero
789, il computer, grazie alla presen-
za della virgola erroneamente inseri-
ta. " crede" che ci sia un attra valore
e r non trovandolo, lo assume come
nullo (0).
1200 DATA 1234,56.789
La virgola è posizionata male vale
a dire dopo il carattere "T e non
dopo il carattere "3 ’ Il computer non
può sapere se il valore esatto è T23
oppure 1234 e individuare un errore,
in questo caso, risulta piuttosto
laborioso
100 REM ********»*****-******
105 REM * TURBO SORT *
110 rem * per cannoDORE 64 *
115 REM * BV FABIO 50RGAT0 *
lc?0 REM ***++**#** + ## 1 **** + **
135 :
130 FDR K”0 IO 509: READ A
135 POKE 48152+K , A : REM S0RT STRI
NGHE
140 POKE 49664+K , A ; REM S0RT NUME
RI
145 CK-CK+A: NEXT
150 IF CK=71B55 THEN 160
155 FRI NT "ERRORE DI DATI NEL 1*
BLOCCO . ” : END
160 CK-0:FQR K-0 TD 100: READ A
165 POKE 43B24+K, A: REM SOSTITUII
ONE DATI PER SORT NUMERI
170 CK-CK+A: NEXT
175 IF CK-14063 THEN 185
180 PR I NT "ERRORE DI DATI NEL £’
BLOCCO . " : END
105 CK-0:FOR K-0 TO 17: READ B , A
130 POKE 4B512+B, A: REM S0STITU21
ONE DATI PER SORT NUMERI
135 CK— CK+A+B : NEXT
600 IF CK-10252 THEN 210
205 PR1NT‘‘ERR0RE DI DATI NEL 3’
24 - Commodore Computer Club
210
215
220
225
230
235
240
245
250
2S5
260
265
270
275
280
2B5
230
295
300
305
310
315
320
325
330
335
340
345
350
BLDCCD . ” : END
CK=0;FQR K«0 IO 132 : READ A
PDKE 50432+K * A: CK“CK+A : NEXT
IF CK-15610 THEN 230
PR INI "ERRORE DI DATI NEL 4 J
BLOCCO . " : END
FRI NTCHR6 C 147 1 "TURBO SOR! AI
T1UATO * ” : SV55043e: END
■
REH DATI PER DRDINAnENTa
REfl □RDINAMNETO STRINGHE
PEPI ********************
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
165 ,
133 ,
208 ,
240 ,
201 ,
251 ,
000 ,
251 ,
230,
024 ,
133,
1B2,
160 ,
177 ,
002,
177,
101 ,
024 t
047 j 133 , 251 , 165 , 048
252, 165,050, 197 , 252
006. 165 . 049 . 197.251
047 , 160 , 000 , 177 , 251
065 , 200 , 007 } 200 , 177
201 , 133,240,037,163
133,092, 160,002, 177
024,101,251 , 144,002
092. 170.200. 177.251
101,252,024, 101 , 032
252, 134,251,076,006
1G2 , 027 , 076 , 139 ,227
002,169; 000,133,032
251,024,101,251,144
230,092,133,096,200
251 , 024 , 101 , 252 , 024
092.133.097.165.251
105,007,144,002,230
440
DATA
024
445
DATA
094
450
DATA
092
455
DATA
200
460
DATA
200
465
DATA
177
470
DATA
251
475
DATA
003
480
DATA
120
405
DATA
014
490
DATA
144
495
DATA
024
500
DATA
233
505
DATA
133
510
DATA
176
515
DATA
005
520
DATA
245
525
DATA
010
530
DATA
251
535
DATA
255
540
DATA
251
545
DATA
200
550
DATA
064
555
DATA
207
560
DATA
164
555
DATA
003
570
DATA
132
575
DATA
176
500
DATA
006
505
DATA
245
590
DATA
255
595
DATA
IBS
144,004
160 , 000
200,011
245. 165
025.144
251,170
130 . 145
208,241
133.002
165,251
002,230
144,011
003, 176
253 . 165
003,078
165.251
165 . 252
240.002
197 , 095
166.255
024,105
157.000
207 . 165
165,037
252. 165
176.001
097 . 165
003,076
165,098
155.255
169,000
064 , 207
, 165 , 091 , 133
, 177 , 003,209
, 200 , 136,094
, 095 , 240,004
, 023 , 150,000
, 177 , 253 , 145
, 253 , 200,192
, 165 , 002,073
, 165 , 002,208
, 024 , 105, 003
, 252 , 133,251
, 165 , 253,056
, 002 , 199,254
, 252 , 197,254
, 160 , 192 , 208
, 137 , 253, 144
, 197 , 037, 144
, 176 , 037, 165
, 176 , 031 , 230
, 164 , 252,165
, 003 , 144 , 001
, 207 , 152,157
, 096 , 157, 128
, 157 , 192,207
, 251 , 056,233
, 136 , 133,096
, 033 , 197,097
, 140 , 192,200
, 197 , 096 , 144
, 240 , 027, 166
, 207 , 133 , 098
, 133 , 099 , 1 B 9
355 DATA 252,133,251,164,097,165
360 DATA 096,056,233,003,176,001
365 DATA 136,133,096,132,097,032
370 DATA 165, 193, 169,000, 133,255
375 DATA 165,251,133,093,165,252
380 DATA 133,099,165,098,133,251
385 DATA 165,099,133,252,165,096
390 DATA 133,253,165,097,133,254
395 DATA 169,128,133,002,160,000
400 DATA 177,251,240,072,133,088
405 DATA 200 , 177 , 251 , 133,009, 200
410 DATA 177,251,133,090,160,000
415 DATA 177,253,240,077,133,091
420 DATA 200,177,253,133,092,200
425 DATA 177 9 253 , 133 , 093 , 169 , 000
430 DATA 133,095,165,088,197,091
435 DATA 176,007,133,094,230,095
Commodore Computer Club - 25
600
605
610
615
620
625
630
635
640
645
550
655
660
665
670
675
660
685
650
685
700
705
710
715
720
725
730
735
740
745
750
755
760
765
770
775
760
76S
730
785
B00
805
810
815
820
825
830
035
840
DATA 1 28 , 207 , 133, 036 , 109 , 1 92
DATA 207, 133,097,190, 255 ,076
DATA 140 , 192 , 036 , 030 , 060 , 080
DATA 120, IBS, 251 ,133, 0BB, 165
DATA 252,133,009,173,117,220
DATA 041 ,003, 170 , 165, 003 , 133
DATA 254, 103, 161, 193, 024 ,101
DATA 088 , 144 , 002 , 230 , 254 , 133
DATA 253 , 1 65 ,254,107, 097 , 240
DATA 004 , 144 , 000 ,176, 023 , 1 65
DATA 253,187, 036 ,176.017,160
DATA 000 , 177 , 088 , 170 t 177 , 253
DATA 145 , 000 , 136, 145 , 253 „ 200
DATA 182 T 003 , 20B , 241 , 165 , 088
DATA 024 , 105 , 003, 144 ,002 >230
DATA 068 , 133, 068 , 1 65 , 093 s 187
DATA 097 „ 144, 104 , 165 , 0BB ,137
DATA 086 j 144 , 178 , 036 , 000 , 000
+
REM *********************
REP1 DATI PER SOSTITUZIONE
REM PER ORDINAMENTO
REM NUMERI
REM *********************
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
+
*
DATA
DATA
DATA
DATA
DATA
DATA
160 t
133 ,
208,
208 ,
032,
002,
230,
208,
170 ,
145 ,
241 ,
002 ,
132,
200 ,
245 ,
036 ,
234,
001
081
006
024
230
208
184
057
177
253
165
024
033
006
086
163
234
>177 ,
,177,
, 1 65 ,
, 165,
, 134,
, 066 ,
, 165 r
,160,
, 253 ,
, 200 ,
, 002 ,
, 144 ,
, 177 ,
, 200 ,
,144,
,002,
, 234,
253,
251 >
081,
091 ,
165,
240,
033,
000 ,
145,
192,
073 t
026,
251 ,
132,
003,
1 33 ,
234,
041 ,
041 t
240,
240,
093,
008,
201 ,
177,
251 ,
005,
12B ,
160,
203,
005,
230,
083.
234
128
120
017
077
201
032
001
251
130
208
133
000
253
208
033
036
845
850
955
660
B65
870
B75
BB0
QB5
880
835
900
905
310
815
820
925
930
935
340
345
850
855
860
865
970
375
360
885
990
REM ******************
REM DATI
REM PER RICONOSCIMENTO
REM NUOUQ COMANDO
REM ******************
DATA
DATA
DATA
□ AIA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
163,011
137, 141
115 . 000
032, 121
1 63 . 000
133,254
160.001
201 , 036
144 , 020
201,058
000,200
011,076
024, 101
123,133
036,208
141 , 025
000,003
032,000
002,230
168,250
200,185
194,032
167
,141,006,
, 003 , 003 ,
, 201 , 085,
, 000 , 076 *
, 133,252,
, 165, 123,
, 162 , 004 ,
,240,024,
,201,031 ,
, 240,012 ,
, 202,208,
t 138,227,
, 122,144,
, 122,160,
,027, IBS,
, 138,200,
, 128,141 ,
, 192,230,
, 123,076,
, 000, 141 ,
,250,000,
,000,184,
003, 169
096.032
240 , 006
231 p 167
165,122
133,255
177,254
201,065
176,011
153.250
231 , 162
170,152
002,230
001,224
250,000
165.250
032, 192
122.208
174, 167
025, 184
141.032
076. 174
273 . 185 . 269 . 005 . 218 . 194
164 . 065 . 640 .005.633.005
593 , 195 ( 572 , 200 t 571 , 150
570 . 100 . 563 . 050 . 567 . 1 94
528 . 134 . 512 . 005 . 495 . 005
450 . 184 . 435 . 005 . 421 . 005
10 REM DEMO SORT
12 INPUT "UETTDRE DI ELEMENTI”;
N
15 DIM A$CN 1 : FOR K-0 TO N
20 R-RNDC 1)*5: AS-" "tFOR J-l TO
R; AS-AS+CHR5CRNDC 11*86+65) : N
EXT
30 PRINTK ; A$: ASCK) a ASr NEXT
40 PRINT : FRI NT "PREMI UN TASTO":
POKE 190 , 0 : UÀ I T 198,1
50 T I$- "000000 "^ASìT-TI :PRINTT
/60 "SEC - " : POKE 13B,0:UAIT 13
0,1
60 FOR K-0 TO N : PR I NTASj C K ) : NEXT
26 - Commodore Computer Cfub
Da oggi c’è un nuovo
distributore di
stampanti FACIT
per il tuo
Personal Computer IBM
FàCIT
Arenano (GÈ) \*.m degli l Ini, 15 - Tei 010/9112036
Bergamo D I P Bergamo \ iu Ri/ri'ii Palazzo. OD
Tel: 035/233909
Bologna DJ P P .za Porla Maccarelli, 7
Tele 051/240602
Castelfranco Veneto (TV) Vectun Borgo 1 reviso, 45
Tele 0423/496222
Fabriano (A!V) D I f* tu< •Mìa Via C li miniasi, Ifi
IVI.: 0732/22230
Livorno DI !’ /.minio Via Sanirgna. ( l
Milano D I I’. Milano Via V « Josta* 3*1
Tri : 02/2841 )ó( IH- 28-+<H8«
Roma D I P Homi, Via È. Colombo. 179
Tri.: 06/5133041
Torino Elcomm Via Vrtfcn. 36 - Tri.: 01 1/832620
Distributori FACIT
Bacano dii Grappa (VI) Snidi» /. <V (:. >/i,t \ Ir
Diaz. 27 • Te). 0424/21 254 1
Belluno >67' Computer .Si 'tru, \ ih l rlirr. 244
Tri. 0437/20826
Castelfranco V. (TV) I olpuftì snc Via Ricreati. 25
Tel 0423/495961
(inrizia Quark *rl Via l dine. 143 IVI 0481/391693
Mestre Loc, Chirignago Computimi* srl
Vìa Mirane», 420 - Tel 041/917$66
Mestre/Venezia
Rii ( àuìtputrr* srt
P /a Burl ile. 45
Tel. 041/958007
Mestre /Venezia
Offrili I J >rn }/} srl
(/su del Popolo, 32
Tel 041/5053333
Montcbdlhina (TV) Volpstn sne Vìa Mnmegrappa* 103
Tel 0423/302771
Padova >5 s/rtn Jfrw sns P.za De (disperi. 14
Tel. 049/38412
Pordenone Strutture Informatiche -*ri Via s - Caterina. 3
Roma Data Office Via Sinliu, 205 - Tei 06/4742651
Dr Inulti
Roma Expo Vìa l\ Novembre - Tel 06/6783488
Sig. Buffi m
Roma Frrsufuil Computer P za Pio XI 26
Tel 06/6380353
Roma Vnlde Adel P .za Bomsizza. 3
Tel. 06/3 1633 1-3 16676
S. Dona di Piave Computine srl Rza Rizzo. 63
Tel. 0421/52548
Schio (VI) Bit >r/ Via Roccoletto. 23
Tel 0445/28928
Schio (VI) /, ima 4 sor \ iu Ri vii del (tristo. 4/8
Tel 0445/28970
I a ver nelle (VI) UWrfr n Infornmtàw srl Ma Venuta. 64
Tel 0444/573967
I reviso Informatica Ire sH V,|e della Repubblica. 19/B
Tel 0422/65993
Trieste Muffi sne Via A. Dui/. 24/ A * Tel 040/306091
Udine (ÌC Mietiteli sne \Me Ungheria. 64
m 0432/2918:15
Verona UVjmpufcJL Sfatemi srl \ le dii t^vnm, 33
Tel 045/50931 1
Vicenza Centro htfontmtica srl i'so Fogazzaro. 28
Tel 0444/38513
Cerimi Dire/ Collimili
Pai a / su Odone Ingr. I
2004! Varale Rrian/a MI
IVI : (H9/rri&mi
Telex A26423 Sl.W BC
Obroins sei
GIOCHI
COMMODORE 64 - C-16 PLUS/4
er lavorare in modo produttivo cd
efficace col computer è necessaria, tra le
altre cose, una buona, se non perfètta,
padronanza della tastiera.
Questo È uno dei problemi più ardui
da risolvere per t principianti, che devo-
no “addestrarsi" notevolmente per col-
mare la lacuna. Farlo con un programma
tipo “corso di dattilografia" o altre cose
del genere può risultare noioso e stres-
sante, mentre imparare per mezzo di un
giochino lo è sicuramente di meno. E'
proprio questo lo scopo di SCASSAMI.’
RO, un game che riesce ad essere anche
utile.
Il listato gira sul C — 64, sui C — 16 e sut
Plus/4 e non dovrebbero esistere proble-
mi per la trascrizione in quanto c relati-
vamente breve. Ricordiamo che le righe
conenenti soltanto istruzioni REM pos-
sono non essere copiate; hanno soltanto
funzione di chiarimento e non influisco-
no sul funzionamento dei programma.
Per facilitare la lettura del listato sono
stati eliminati tutti i simboli "strani" in
reverse, sostituendoli con la corrispon-
dente funzione CHRS.
Prima di dare il RUN, registrate e veri-
ficate il programma: un errore di copia-
tura ^specialmente per le funzioni di PO-
KE) può essere letale.
Comesi gioca
Scopo dei gioco è impedire che le 200
homhc che vengono sganciate distrugga-
no completamente il muro posto in bas-
so, Ciascuna bomba è, in realtà, una del-
le 26 lettere dell alfabeto che* ad ogni
buon conto, è riportalo in basso sotto
forma dì tastiera ASCII. Per impedire
che distruggano un pezzo di muro è ne-
cessario premere la lettera corrisponden-
te prima delFimpatto.
A! l'inizio del gioco viene chiesto i! li-
vello di difficoltà che può essere 1, 2 r 3, 4
oppure 5: 1 è il più difficile mentre il 5 T
ovviamente* è piuttosto semplice
Il livello di difficoltà selezionato influisce
per tre motivi:
• Varia la velocità della bomba
• Cambia la distanza del muro dal pun-
to da cui partono le bombe;
58 - Commodore Computer Club
Scassamuro
Un semplice giochino per acquistare
familiarità con la tastiera.
dì Maurizio Dell 1 Abate
^ Mi
L
# M uta lo spessore del muro: a parità di
bombe sganciate è più facile che venga
distrutto un muro sottile, che uno
spesso.
[I gioco termina quando il muro viene
distrutto completamente o quando ven-
gono sganciate le 200 bombe.
Nel primo caso il programma vi comu-
nica che non avete sufficiente dimesti-
chezza con la tastiera; se invece le 200
bombe non sono bastate a decimare il
muro, viene comunicato il punteggio.
Questo ò inversamente proporzionale al
numero delle bombe che non sono state
bloccate.
PossibHi sofisticazioni
11 programma si presta molto bene per
essere ampliato. Qualche idea:
• Inserire una routine sonora nelfulti-
ma riga,
$ Variare il numero delle bombe a se-
conda del livello di difficoltà.
• Fare in modo che un simbolo grafico
abbia una funzione di jolly e possa quindi
essere fermato premendo un tasto
qualsiasi,
• Fare in modo che una lettera possa
cambiare durante la caduta.
100 REM SPACCAMURO
110 REM GIOCO PER C-64 E C-1G
120 :
130 REM BY MAURIZIO DELL'ABATE
140 :
1S0 PR I NTCHRSC 1471 ”1 C-64”:PRIN
T”2 C-1B PLUS/4"
1G0 GET A$:IF A$-”” THEN 1E0
170 IF A$-"l" THEN SC-1024:GOTO
220
180 IF AS-”2” THEN SC-3072:GOTO
220
130 GOTO 160
200 :
210 REM SCHERMATA INIZIALE
220 PRINTCHRSC147) ; : PRINT : PRINT
230 PRINT” SCA55AMUR0"
; CHRSC 144 )
240 FOR 1-0 TO 33: PR1NTCHRSC 195
) ; : NEXT
250 PRINT: PRINT" LIUELLO DI DIF
FICOLTA ’?"
260 PRINT : PRINT” 1-DIFFICILE ..
5-FACILE”
270 GET AS-.IF A$< " 1 " OR A$> "5”
THEN 270
2B0 U-10*UALCAS)-10: GOSUB 710: L
U-UALCAS) :REM U-RITARDO
290 PRINT: PRINTCHRSC144) ; ” HAI
SCELTO: ";LU
300 PRINT" PREMI UN TASTO PER I
NIZIARE”
310 GET RS:IF LENCRS)-0 THEN 31
0
350 GQSUB 710
330 REM INIZIO GIOCO
340 PRINTCHRSC147): PRINT
350 FOR 1-0 TQ 39: PRI NTCHRSC 195
> ; : NEXT
350 FOR 1-0 TO B+LU: PRINT: NEXT
370 PRINTCHRSC144) ;CHRSClBi) ;
300 FOR 1-0 TO LU
330 FOR G-0 IO 33 : PR I NTCHRSC 32 3
; : NEXT
400 NEXT : PRINT : GOSUB 5B0
410 FOR 1-0 TO 133 : GOSUB 710
420 2X-40*RNDC 1 ) : AS-0
430 LX-SC+160+2X : IF 0<15 AND PE
EKCLX+40*CB+C2*LU))>-32 THE
N O-O+l: GOTO 420
440 0-0 : CL-BG*RND C 1 ) + 1
450 GET RS : FOR Y-0 TO 13:PRINTC
HRSC 19) : PRINT” SGANCIATE” il
+1 jCHRSC1S7) ; ” BOMBE”
460 IF CO-CLU+1)*40 THEN G10
470 FOR B-0 TO LU-1:GET AS:IF L
ENCAS)>0 THEN AS-ASCCAS)
400 NEXT
490 IF AS-INTCCD+64 THEN Y-13:
GQSUB 710: GOTO 550
500 DF“LX+40*Y: IF PEEKCOF)-160
THEN CO-CO+1 : Y-19 : POKE DF-4
0,32; GOTO 520
510 POKE DF , CL : POKE DF-40,32:FO
R HH-1 TO (J; NEXT: REM U-RIT
ARDO
520 NEXT: POKE DF.32
530 NEXT
540 REM MESSAGGI E PUNTEGGIO
550 PRI NTCHRSC 147); : PRINT: PRINT
: PRINT
560 PRINT” OK, UA BENE.”
570 PRINT: PRINT" IL TUO PUNTEGG
IO E CHRSC 144) ; INTCC 1/CO)
* 1 0000 )
5B0 PRINT: PRINT” PREMI UN TASTO
SE UUDI MIGLIORARE."
590 GET RS: IF LENCRD-0 THEN 59
0
600 GOSUB 710; RUN
610 PRINTCHRSC147) : PRINT; PRINT:
PRINT
620 PRINT” I TUOI RAPPORTI CON
LA TASTIERA"
630 PRINT" NON SONO TRA I MIGLI
□RI”
640 PRINT : PRINT : PRINT” SEI RIUS
CITO A FARTI ABBATTERE"
650 PRINT” IL MURO,"
660 PRINT: PR1NTCHRSC 144)" CONTI
NUA AD ALLENARTI I GOTO 57
0
670 :
6B0 PRINT "0 WERTYU I OP"
630 PRINT" ASDFBHJKL”
700 PRINT” Z X C U B N M" ; : RET
URN
710 RETURN: REM INSERIRE LA RDU
TI NE SONORA
Commodore Computer Club - 29
GIOCHI
C/64, C/16, Plus/4
Magic square
Un famoso rompicapo trasformato in video
game, per la gioia dei Commodoriani e per il
dolore del cervello.
uesti) gioco mescola io modo casus-
le le lettere dell’alfabeto dalla “A" alla
“CT e le dispone in una tabella quadrata
di quattro righe per lato per un totale di
iò caselle.
Una delle celle rimane vuota e scopo
del gioco £ quello dì porre in ordine alfa-
betico le lettere facendole scorrere nei
quadrato, analogamente al classico fio-
chi rio con i numeri da 1 a 15,
Per muovere una lettera sì deve pre-
mere, è ovvio, il tasto ad essa corrispon-
dente. Se risulta ' bloccata' a causa della
Lontananza dalla casella vuota, sul video
compare il messaggio: 1 Movimento non
possìbile l \ Lo spazio vuoto deve, ai ter-
mine de! gioco, trovarsi nello cella più in
basso a destra della griglia In caso con-
trario il programma non sarà in grado di
riconoscere la vostra fatica mentale.
Nel gioco le mosse vengono conteggia-
te e visualizzate, ma non potete effet-
tuarne più di 300 (sembrano molte ma
non lo sono affatto . U Superato questo
limite il gioco termina imsoluto.
E' stata introdotta un’altra sofistica-
zione, assente nel gioco "meccanico"
originale. F H possibile invertire la posi-
zione di urta lettera con quella che si
trova nella casella sottostante. Per eftct
tua re questa mossa è su fficiente premere
il tasto "5”, seguito dalla lettera deside-
rata. Come è facile intuire, non è possibi-
le operare uno scambio indicando una
delle lettere presemi neirulrima fila in
basso Un messaggio, in questo caso, se-
gnalerà l'errore.
L'uso de Min versi onc facilita però no-
tevolmente il gioco, ed è quindi giusto
30 - Commodore Computer Club
di Man ri/iu DelTAbuU-
penalizzare il giocatore conteggiando
ben quaranta mosse per ogni scambio
effettuato. Jn questo modo non potrete
ragionevolmente sfruttare la funzione di
scambio troppo spesso nei corno della
stessa partita
La parte più difficile de! gioco si verifi-
ca quando le ultime tre lettere (M, N. Oj
sono le uniche che devono essere ancora
ordinate, iiolo se utilizzerete con intelli-
genza l'inversione riuscirete a portare a
termine il gioco. Ricordate che l'inver-
sione agisce solo in senso verticale e,
quindi, se vorrete invertire due leitere
affiancate tra loro dovrete opportuna-
mente spostarle.
Il gioco gira sut Commofore a 40 co-
lonne, a patto però che segnaliate al pro-
gramma quale computer state usando. I
commenti al listato (REM), che in que-
sto caso non sono pochi, possono tran-
quillamente essere tralasciati: le lince di
commento non vengono infatti “chiama-
te” da istruzioni del tipo GOTO oppure
GOSUB.
11 programma non prevede suoni, co-
lon. o particolari effetti grafici al lo scopo
di non compromettere la compatibilità: è
compito vostro, se lo desiderate, rendere
più gradevole il programma.
Concludiamo ricordando la corretta
disposizione delle ledere affinchè il rom-
picapo sia considerato completo:
A B C I)
E F G H
! J K E
M N O
100 REM QUADRATO MAGICO
105 :
110 REM BY MAURIZIO DELL’ABATE,
11S REM PER C64 , C1S, PLUS/4
■120 ;
125 FRINTCKRSC147) : PRINT” 1. CS
4 E C12B MODO 64”
130 PRINT : PRINT” 2. C16 E PLUS/
4”: PRINT: PRINT” SCEGLI ... ”
135 GET 0$ : I F 0$<”1” OR QS> "2”
THEN 135
140 1F Q$-”2” AND PEEKCl)-55 TH
EN E-l: PRINT "SECONDO ME HAI
IL 64 . . . UEDREMO ‘ I "
145 IF E-l THEN FOR RE-0 TO 300
0: NEXT
150 LM-300: REM NUMEROSI MI TE DI
MOSSE
155 EN-1000: DIM LSC3, 3) : PRINTCH
RSC147)
160 PRINT: PRINT: PRINT TABC11);”
” : REM 14 UOLT
E TASTO COMMODORE + @
165 PRINT TABC111CHRSC18)” MAGI
C SQUARE ”
170 PRINT: PRINT TABC83 "OUUERO:
GIOCO DEL 15 PRINT
175 FOR 1-0 TO 39: PRINT ; :NEX ,
T:PRINT: PRINT
100 REM ’»«*»****«******’•*
1B5 REM USA SHIFT + C, SHIFT +
1S0 REM COMMODORE + A, S, Z, X
1S5 REM COMMODORE + Q, W, E, R
200 REM SHIFT + +
205 REM
210 PRINT TABI 14) ; ” n-ro ”
215 FDR 1-0 TO 2
220 PRINT TABI 14 ) ; " I I ì I I”
225 PRINT TABC14) ; " H—f'-'H”
230 NEXT
235 PRINT TABC14) ; ” l \ ì 1 t”
240 PRINT TABC14) ; " 1 — 1 — *<-'*— *” : P
RINT
245 FOR I“0 TO 3S: PRINT”-” j : NEX
T: PRINT: PRINT
250 :
255 REM INIZIO CASUALE
265 FOR I-GS TO 73
270 NC-4*RN0C1) :ND-4*RNDC1) : IF
LI C NC , ND ) < > ” “ THEN 270
275 LSCNC.NDl-CHRSC I) : NEXT
2B0 :
285 REM INSERISCE LO SPA2I0
230 :
2S5 FOR B-0 TO 3
300 FOR 1-0 TO 3
,305 IF LSCI.B)-"” THEN LSCI.B)-
CHRSC32) : GOTO 330
310 NEXT: NEXT
315 :
320 REM STAMPA E CONTROLLA
355 :
330 U-0: CC-0: X-15: Y-12: FOR B-0
TO 3: FOR 1-0 TO 3
335 AS-LSC I , B) : GOSUB G65: IF AS-
CHR$(G5+CC) THEN V-U+l
340 CC-CC+1 ; X-X+2 : 1 F X-23 THEN
X-15: Y-Y+2
345 NEXT: NEXT
350 IF U-15 THEN G10: REM DITTO
RIA
355 IF MS>— LM THEN 635: REM SCO
NFITTA
360 :
365 REM LEGGE LA TASTIERA
370 :
375 GET AS
3B0 IF AS-CHRSCS3) THEN 510: REM
CAMBIO
3B5 IF AS<”A” OR A*>”0” THEN 37
5
3S0 :
335 REM E’ POSSIBILE LO SPOSTAM
ENT07
400 :
405 FOR B-0 TO 3: FOR 1-0 TO 3:1
F LSC I , B)<>AS THEN NEXT: NEX
T
410 Z— I-1:IF Z<0 THEN 420
415 IF LSC2,B)-CHRSC32) THEN 47
0: REM POSSIBILE MUOUERSI A
SINISTRA
420 Z— I +1 : IF Z>3 THEN 430
425 IF LSCZ, B5-CHRSC32) THEN 47
0: REM POSSIBILE MUOUERSI A
2B0
DESTRA
Commodore Computer Club - 31
GIOCHI
430
435
440
445
450
455
460
465
470
475
480
405
490
495
500
505
510
515
500
530
535
540
545
550
560
565
X“B-1 : I F X<0 THEN 440
IF LSC1 .XX-CHRSC3S) THEN 49
0 ; REM POSSIBILE MUOUERSI I
N ALTO
X«B+1:IF X>3 THEN 450
IF L$(I ,X)“CHR$C35i THEN 43
0 : REfl POSSIBILE MUOUERSI I
N BASSO
A$-”MOUI MENTO NON POSSIBILE
" : X-l ì Y— 1 : BOSUB
665: GOTO 375
*
REM A SINISTRA E A DESTRA
4
LSC I , B3-CHRSC3B5 ;LS£Z,B3-AS
:GOTO 500
*
*
REM IN ALTO E IN BASSO
V
m
LSCI ,B3“CHRSC3H):LSCI,X)-AS
:GOTO 500
■
REM SCAMBIO DELLE LETTERE
-V
■
AS= "SCAMBIO TRA LA CASELLA
RICHIESTA. . . " : X-l : Y-l : GOSUB
6S5: FOR 0-1 TD ENlNEXT
AS-"E LA CASELLA SOTTOSTANT
E. ": X-l : Y-l: GOSUB
BBS: FOR Q-l TO EN : NEXT
AS- "QUALE CASELLA DESIDERI?
£ PREM II " : X-l : Y-l : GOSUB
6SS : FOR 0-1 TO EN : NEXT
GET AS
IF AS-CHRSC3EJ THEN 540
IF AS< "A ” OR AS^’O" THEN SE
5
FOR B-0 TO 3: FOR 1-0 TO 3:1
F LSCI.BIOAS THEN NEXT : NEX
T
NB-B+1 : IF NB>3 THEN 450
CS“LS£ I , B3 : Liti , B)-L$C I , NB)
:LSCI ,NB)=CS ‘
MS— MS+40 : AS- "TI PENALIZZO C
ON40 MOSSE. MOSSE: ”+STRS CMS
): X-l: Y-l : GOSUB 665
GOTO 330
570 REM AGGIORNA E STAMPA LE MO
SSE
575 :
5B0 JHS-" ” : REM B SPAZI
BIANCHI
595 MS-MS+1 : AS— ”QK . MOSSA UAL IO
A. MOSSE: "+STRSC MS3+ JHS : X“1
: Y-l: GOSUB 665
500 GOTO 330
REM CASO DI UITTORIA...
A
AS— CHRSC 10)+ "HAI UINTOI MI)
I I X-l: Y-l: GOSUB 665: FOR I
-1 TO S000 : NEXT
AS»“CE L’HAI FATTA IN”+STR$
£ MS 3 + ” MOSSE. “ : X-l : Y-l : G
□SUB 665: GOTO 635
600
605
610
615
6S0 :
6E5 REM ...E DI SCONFITTA
630 :
635 FOR 1-1 TO E000:NEXT
640 AS—CHRSC IBI +”HAI PERSO! ) M !
! t X-l: Y-l: GOSUB 6GS:F0R I
-1 TO E000; NEXT
64S AS- "TROPPE MOSSE. ALLENATI
E MIGLIORERAI !”: X-l: Y-l :GOS
UB 665: GOTO 605
650
655
560
665
670
675
680
605
650
695
700
705
710
715
REM POSIZIONA IL CURSORE A
X,Y
A
4
IF OS-"E” THEN 675
POKE 7B3 , PEEK £ 703 1 AND E54 :
POKE 7B1 , Y : POKE 70E,X:SYS65
5E0 : PR I NTAS : RETURN
CHAR . X , Y-l , AS : RETURN
*
«
REM PARTE C0NCLU5IUA
*-
4
FOR 1-1 TO E000 : NEXT
AS- "PREMI * PER GIOCARE 01
NUOUO" : X-l: Y-l : GOSUB 665
GET AStIF ASOCHRS£4S5 THEN
705
RUN
END
32 - Commodore Computar Ckib
AdVBFTflajrp
delle
colonne V Sbasso costo , jtà e basse P' e
sto mpa r ' t ' mfl non boss d nL , 0V i prodotte - 0 45 cps-
Basso costo, questi due n f irn j Z zata
ecco le dl «**?■» ""ti PC
Velocita a 80 P g ^ co n I
V#l£££ lo co.P-r d r mercato in qu
nataralment cofn p«t.tivo
- 55 Sg£--r^ 5 K 5
■SSS ÈsssffK*"'*
MANNESMAN^
7XLLY
20094 Càrsico fMJJ - Vro Borsini, ó
TèI (02) 4502850 855/860
865 870
refe* 3U371 Tafly I
00144 Rome ■ YioM Pcraglio, 15
Tei (Ùò) 5984723 5984406
t0099 San Mauro (TO)
Vto Cosate, 308 - Tel (Oli) 8225171
40050 Montevegho (80)
Via Einstein. S - Tel (ÒSI) 832S08
r
uO
T
r~
1
HARDWARE
COMMODORE 64
Speed dos da Formula 1
Come spremere il drive e forzare il C-G4 per
trasferire dati alla velocità di oltre dieci Kbyte
al secondo
R
,cr capile bene le straordinarie possi*
bilità del prodotto che stiamo per descri-
vere è necessario spiegare il modo in cui,
di nonna, vengono trasferiti i diri tra
computer e periferica.
Un dato, facente parte di un program-
ma o di una elaborazione, è costituito da
un byte che, a sua volta, è fonnato da
otto bit. Ber come sono fotti, dunque,
sarebbero necessari otto fili elettrici (uno
per ciascun bit) per trasferire un byte alla
volta.
1 computer Commodore* come con-
nessione per periferiche, utilizzano, in-
vece, la tiBsmìssioiie cosiddetta seriale
che consiste nelTinviare (o ricevere) ver-
so (da) la periferica ì sìngoli otto bit eo&i-
tuenti il dato, uno alla volta.
Il motivo di questa scelta è dovuto a mo-
tivi economici: un “Bus” («insieme di
connessioni elettriche) costruito da otto
fili elettrici è decisamente più difficile da
realizzare in modo economico sulla pia-
stra del calcolatore. Quanto asserito tro-
va conferma nel differente prezzo dei
connettori per grossi computer che, co-
me è noto, hanno in dotazione un Bus
parallelo.
Il grande vantaggio di una economia di
produzione sì traduce però, inevitabil-
mente, in una minore velocità di rice—
trasmissione.
Per capire il perchè, vediamo come fun-
zionano i due sistemi:
• Collegamento parallelo
Il Bus è costituito, principalmente, da
nove cavi. Quando il computer deve in-
viare un dato, “posiziona" gli otto bit che
lo costituiscono sui corrispondenti otto
fili elettrici.
Completata questa operazione, il no-
no filo "comunica" alla periferica inte-
ressata che il dato può esser letto. H mo-
do di segnalare tale possibilità può esser
realizzato in molti modi: ad esempio te-
nendo a “0” Lo stato del nono cavo du-
rante il posizionamento del byte e met-
tendolo a ”1" quando Toperazione è
conclusa o viceversa.
Oltre ai nove cari sono presenti altri
34 - Commodore Computer Club
HARDWARE
segnali che comunicano al computer che
il dato è staio correttamente ricevuto
dalla periferica e che quindi può esser
inviato il successivo.
Tale procedura di scambio di dati si
chiama, in inglese, “Handshalting" che,
letteralmente, vuol dite “Stringersi la
mano". Il termine deriva dal fatto che si
immagina che computer e periferica.
Ogni volta che completano una funzione,
si stringano la mano per segnalare, ap-
punto, il termine dell'operazione e la
possibilità di effettuare quella
successiva.
Ma dò che più interessa è che la velo-
cità può esser misurata in byte dato che
un intero byte viene trasferito nel l'unità
di tempo.
Con questo tipo di rice — trasmissione,
come è intuitivo, i cavi del Bus sono in
numero decisamente minora.
Quando un byte deve esser trasferito, il
computer immette, sullo stesso cavo,
uno alla volta gli otto bt che lo costitui-
scono. Si suppone, dunque, la presenza
di una sorta di co malore software che
consente di sapere il rnomerto in cui è
Stato inviato l'ultimo dato e di prepararsi
a ricevere il successivo “pacchetto” di
otto bit.
In questo caso la velocità si misura in
bit che, come t intuitivo, risulta, agli «ti
pratici, decisamente inferiore a quella
parallela.
Affidabilità
La bassa velocità di trasnissone rea-
lizzatiti e col dirò 1541 non è dunque
dovuta al desiderio dì una maggiore affi-
da biM ma proprio al latto che, inviando
un bit alla volta, non è pruderie elevarla.
Se fosse possìbile inviate un byte intero,
alla stessa velocità con cui si invia un bit,
l'affidabilità resterebbe, grossomodo,
invariata.
Vi sono, comunque, alcune cartucce
che, modificando una parte del KemaJ,
consentono di aumentare la velocità di
invio. Questo, però, rimane di tipo seria-
le e non e levabile, per questioni di pru-
denza, oltre un certo limite.
LoSpeedDos
La Ditta Nrwa Soft di Sesto San Gio-
vanni {P.G. Boa N.S3 Tel, 02/2440776)
fornisce, al prezzo di L. 100000, un siste-
ma hardware — software in grado di rag-
giungere velocità di trasferimento dati
impensabili per un computer della fascia
bassa, come, appunto, il C /64.
Come si può notare dalle fotografie,
con rinserimento del ‘Turi»" sono ne-
cessari due cavi tra computer e periferi-
ca. E primo à quello seriale “normale". B
secondo è quello parallelo che collega,
tramite la porta utente, Fintemo del
drive.
Per “truccare" il vostro sistema è ne-
cessario effettuare alcune operazioni
Hardware che, «ebbene sem purissime,
richiedono attenzione e precisione in
modo da evitare corti dmiiti, Per andare
incontro anche a coloro che non se la
sentono di manomettere il prono siste-
ma, la Nrwa Soft invia, con la confezio-
ne, l'elenco dei centri italiani autorizzati
a compiere l'operazione.
Ecco, comunque, ciò che sì deve fare
tare il proprio sistema dello Speed
per d
Dos:
• Aprire il C/64 e rimuovere dal suo zoc-
colo la Rom indicata sul manuale. In
alcuni esemplari di £J6 4 (pochi, per for-
tuna) tale circuito integrato (C.L) risulta
saldato sulla piastra e, di conseguenza, è
necessario dissaldarlo per inserire, al suo
posto, lo zoccolo.
• Inserire la * t veeehia” Rom sullo zocco-
lo vuoto della prima scheda aggiuntiva
(che contiene la nuova Rom alteniativa)
e installare quest 'ultima sullo zoccolo la-
sciato vuoto precedentemente. Collega-
la alla scheda è un deviatore che coese tv
■«
tiri, a seconda della sua posizione, di
utilizzare il nuovo CI. (Speed Dos) op-
pure quello “vecchio" che farà funziona-
re il C/64 nel “solito" modo. La compati-
bilità col software precedente è quindi
totale dato che il nuovo CJ. può essere
totalmente escluso e sostituito dall'origi-
nale agendo semplicemente sul
deviatore,
a Aprire il drive 1541, rimuovete dal suo
alloggiamento il circuito integrato indi-
cato sul manuale ed inserirlo sulla secon-
da scheda aggiuntiva, contenente un'e-
stremità del cavo parallelo. Inserire la
scheda nell 'alloggiamento lasciato vuoto
e richiudere il drive.
Commodore Computer Club -35
HARDWARE
Le prove effettuate
Anzitutto è stata provata la compatibi-
lità hardware sia con programmi profes-
sionali (Word Pro, Data Base, Spread
Sheet) che con videogiochi sofisticati già
in nostro possesso da vecchia data (alta
risoluzione, sintesi vocale, multi sprrte
eccetera): tutto ha funzionato
regolarmente.
Passati in modo Speed Dos abbiamo
mi di prima (oltre, ovviamente, al loro
corretto funzionamento).
Abbiamo notato, soprattutto, la profon-
da differenza esìstente tra lo Speed Dos e
le solite cartucce che consentono dì au-
mentare la velocità»
Queste, in effetti, consentono di au-
mentare la velocità di caricamento dei
programmi ma, una volta “lanciati", la
velocità di trasferirne 1*0 dei dati elabo-
rali rimaneva la stessa»
Il vantaggio di caricare ad alta velocità
un programma di Word processor, come
TEasy script, veniva annullalo, insam-
ma, dalla impossibilità di “scaricare” su
disco, alla stessa velocità, ì testi
elaborati»
Dalla tabella pubblicata si può invece
notare che con lo Speed Dos la velocità
rimane aha anche nella gestione dei fife
sequenziali da e verso disco»
La ntMsfang velocità
constatato con piacere la maggiore velo-
cità di caricamento degli stessi program-
La ditta Niwa Soft inserisce nella con-
H
T E
H P 0 C ascondi 1
N. block
Norm.
Speed
Hi-Speed
Dos
Dos
105 prò
97
27
4
Cloadl
105 prò
/
55
/
(bivi)
202 prò
127
•*9
5
Cloadl
202 prò
/
49
/
C sa vai
95 seq
63
24
/
Cinedi
95 st»q
90
55
/
Caavel
lezione un programma speciale che, uti-
lizzato con lo Speed Dos, conserte di
aumentare ulteriormente La già alta velo-
cità di trasferimento dati.
Tale software, formattando un disco
in modo diverso dal consueto, conserte
di caricare un programma di 202 blocchi
(vedi tabella) in soli cinque secondi! Te-
nendo conto che gran parte di questo
tempo è dedicato, dal sistema, per eleva-
re la velocità del disco dalla immobilità al
giusto livello, si può immaginare facil-
mente con quale ìmpeto vengono sca-
gliati i dati sulla superficie magnetica»
Questo sistema dì formattazione con-
sente di realizzare una biblioteca di
software Hi — Speed da rtifiezaie con
grande semplicità.
Concludiamo precisando che pro-
grammi registrati nel modo descritto
possono esser letti solo da sistemi C /64e
1541 muniti di Spéed Dos a causa, ap-
punto, della formattazione speciale cui si
è accennato.
Qualsiasi altro disco può invece esser
letto e scritto, ad alta velocità, con la
certezza di utilizzarlo anche su sistemi
“normali”.
3fi - Commodore Computer Club
l’utente
N ozio"* pet
soia opera^H
H p^framma o ___
Commodore
vostro
[ 55 programmi contenuti nell'opera di ba r ,e sono
stati scritti m mie rosoti BASIC. Delle indicazioni ri-
ferite ai particolari specifici delle attrezzature Vi
consentono un adeguamento senza problemi an-
che ai Vostro apparecchio, riceverete fra I altro
» Programmi matematici, inoltre la Regola di
Crome r. operazioni a matrici, statistica, calcolo dif-
ferenziate ed integrale
• Programmi economici cqme la contabilità
del valere in contanti piano di ammortamento di
un mutuo, cambio di valuta etc.
• Programmi tecnici, i; er esempio tal iella con-
sumo benzina, tabella valori por circuiti digitali,
• Programmi generici come aiuti di addestra-
mento professionale, controllo della salute e
giochi.
Per ogni programma riceverete una discre-
zione dei problemi, il modo dì procedere, un
programma strutturale un listing e test di
prova.
Questa offerta di programmi viene ampliata
con supplementi che escono ogni quattro mesi,
per adeguarsi continuamente alla ultime novità
nel settore dei MC.
• e peri principianti: Tutto sulla program
mozione.
La parte teoretica Vi guiderà partendo dal giusto
modo di procedere nella introduzione delle righe
di programma, le costanti e le variabili fino ai co-
mandi ed alle funzione
Richiedeteci ancora oggi:
Attuali programmi in BASIC
Un raccoglitore robusto di plastica informato DIN
A4, opera di base ca. 550 pagine. Numero d'ordi
nazione 1300 - Prezzo L. 68 OOO.
Riceverete i supplementi di completamento ogni
2 3 mesi con ca, 120 pagine al prezzo di L. 250
per pagina.
Questo manuale sviluppato m particolar modo
perii Commodore 64/128 Vi offri?:
» Programmi funzionali al 100% e routine
ausiliari! per I economia, la tecnica, la grafica ed
il suono, fra f altro nella parte 9 la SUPERMQU5E
nonché programmi adatti per l'analisi dei dati,
l'elaborazione dei testi e l'amministrazione di un
archivio.
« Corsi di programmazione riferiti at calcola
toro per i linguaggi superiori della program-
mazione ed Assembler
Doperà di base metterà fra l'altro a Vostro dispo-
sizione un assemblatore affermato, un disassem-
blatore ed un monitor linguaggio macchina
• Descrizioni dettagliate dei sistemi r
descrizione particolareggiata dei processori (co-
processori), per sound e video chips nonché
moduli di memoria del Vostro modello 64 (128)
• Ampliamenti ed accessori interessanti a
parte ? Vi mostra come potete completare 4
Vostro 64 con CPM e come Vi potete creare con il
software da moduli E PROM un nuovo sistema ope
rat ivo.
■ Istruzioni compiete di costruzione Com-
prese te platine fra altro per un collegamento
completo di un lEC (compreso software) e di una
penna ottica.
• Supplementi all'opera di base:
con nuove routine utili e programmi, corsi intensi-
vi dF linguaggi come LOGO. PASCAL e FORTH, nuo-
vi recenti sviluppi e tante altre c ose ancora.
Richiedeteci ancora oggi:
Nuove possibilità’ con il Commodore
C 64/128
Uri roc coglitore robusto ad anelli formato DIN A4,
opera di base con ca 400 pagine, numero
dominazione 2000- al prezzo dr L 68.000.
Riceverete supplementi di completamento
Qgnr 2-3 mesi con ca. 120 pagine, al prezzo per
pagina di L. 250.
Lattuale tecnica de» microcompufer Vi offre:
* Una documentazione esauriente del hard-
ware con descrizione dettagliata
dei processori 8085. 8086, 6800, 68000,
6502/6510 Z 80 1 8000 cori gli si he mi di collega-
mento e comandi, la memoria centrale, in piu il
RAM statico e dinamico, sempre con schemi di
collegamento ed estratti delie tabelle dati delle
memor e principali (ROM, PROM.. EFROM eie.)
delle interfaccia (RS 232/V24, Centronics Paralle-
lo, IEC Ri JS etc )
dellequip a guarnente di input (tastiere, joystick,
penne ottiche etc \
• Un corso dettagliato MC, he sull'esempio
concreto de; rrner computer Vi aiuta a compre ri-
dere il linguaggio Assembler itw di comandi, i tip*
di i nd i r t za m ente, gl a iut* d 1 p r g r a m ma zione e ie
correlazioni.
■ Istruzioni di montaggio compresi i layouts
delle platine eli :>-r appare' chi supplementari
per ur- computer rr copiatine come per esempio
una platina a l bus ed una platina di Input/output
• Un corso completo di linguaggio di prò
gemmazione BASIC
■ Programmi applicativi simili e problema
hi [lanieri. Quicksort, smistamento binano.
Renumber 64. interfaccia Centronics per C 64
* Tabelle dati con indicazioni abbreviale per i mi-
croprocessori. circuiti integrati, ciré urti periferici
4 Edizioni supplementari all'opera eh base
con nuovi programmi, corsi dr linguaggi (fra l'altro
PASCAL, ASSEMBLER) istruzioni di costruzione
per espansioni di memoria, interfaccia, panorami-
che di mercato e indi' azioni attuati
tecnica
computer
Attuali programmi
i Nuove p
64/128
i r iT*r »n S«_-JÙ 3 E -3 : flo
f. 30L+S U*ro
A Si, speditemi subito
□ Attuai» tecnica di microcomputer il imo indirizzo
Un raccoglitore robusto ift p4lit artificia-
le, i ormato DIN A4 ca, 450 pag™ *- u ; —
numero dominazione 1400 - Prezzo Nome
L 68 000
n Nuove possibilità' con il Commodore
C 64/128 t Un raccoglitore robusto ad
anelli formato DIN A4, opera di base con
ca 400 pagine, numero d'ordinazione ^
2000 - al prezzo di L 68 OOO
n Attuali programmi in BASIC - Un rat flj
coglitore robusto di plastica in formato
DIN A4, opera di base ca, 550 pàgine.
Numero d'ord .inazione 1300 Prezzo L. Pago (indora con
O assegno non frasi
Mi inwereteog™2-3m«<isupp1emertiair- Edizioni WEKA
opera di base di ca. 120 pagine per volta, ai , p_ cfal( .
pretto per pagana di L 250 (posso disdire 3 allego Vaglia Postale
l' abbonamento in qual siasi momento, senza , Q pagherò quando nce
indicarne motivi).
Richiedeteci ancora oggi:
Attuale tecnica di microcomputer
Un raccoglitore robusto in pelle artificiale, forma
to DIN A4 ca 45( ) i igme, numero d’ordinazione
1400 - Prezzo L 68 OGQ. - Ogni 2-3 mesi rice-
verete un volume supplementare di complotta'
mente all'opera di base con ca. 120 pagine al
prezzo di pagina di L. 250.
EDIZIONI WEKA
s.r.L
Via Don Carlo
Gnocchi 7
20148 Milano
GMAHZU
• a r- ‘j i. ni'fW’ji ■ y-v:'MC ■wv — •*••• ->•
r.M «i'r j! g.-.Ji'H. $nj-. 1 ’ >«#[ f r . f .fni' *.«. Je- -i> ' -l<*
;-ru 1-- ffi( I t:l *n ■ I 1 '*►
QUALSIASI COMPUTER
Discorso
Un prontuario di frasi formate da parti
interscambiabili, utili per parlare senza
dir ... nulla
lece un programma talmente sempli-
ce che non ha certo bisogno di essere
commentato nei dettagli.
Si basa sull’uso intensivo delTiitru-
rione RMD (1) che assegna un valore
casuale alla variatale "I", in funzione
della quale sarà visualizzata una frase
costruita con i ** pezzi*' contenuti nei vet-
tori stringa AS t BS, C$, D$ t ES.
Qualunque frase ottenuta, anche se a
prima vista potrebbe avere un significa-
to, in realtà non vorrà dire assolutamen-
te nulla.
Divenitevi a modificare i spezzi"
frasi o ad aggiungerne altri: chissà c
non scopriate in voi una vena orato-
ria»»
10
REM ****•<•**•+****•**
310
£0
REM * QUALSIASI *
3E0
30
REM * COMMODORE *
330
40
REM * *
340
50
REM DISCORSO!
350
50
REM * *
3S0
70
B0
REM *C MI CHELE MAGGI 3*
REM * *
370
S0
REM ••***••****•*•**•
3B0
100
110
•
REM SOGGETTO
390
1£0
130
t
A* C 1 3 - "LA RI CONUERS IONE', "
400
140
ASC£3-"L’ ATTEGGI AMENTO INDI
UI DUALI STA, "
410
150
ASC33-" IL QUALUNQUISMO SURO
GRATI CO,"
4£0
430
1E0
170
1B0
A$C43-”L* INDUSTRI ALI ZZAZION
E PRECOSTITUITA, "
ASC53-"LA COMPONENTE RI FORM
ISTA, ”
#
*
440
450
450
1S0
£00
REM — GERUNDIO —
4
•
470
£10
BSC13-”EUIDENZIANDO ASPETTI
NUOUI, "
480
££0
8S C £ 3 - "FUNGENDO DA CATAL1ZZ
ATORE, ”
490
£30
BSC33-" ALIMENTANDO UNA POLI
TICA DI ASPETTATIUE, ”
500
CI
:r
(U
BSC 4) -"RISCOPRENDO UECCHIE
PROBLEMATICHE,"
S10
SE0
£50
BS ( 5 ) - "ALTER ANDO I MODELLI
PRECEDENTI, "
530
540
£50
£70
*
REM -- UERBO --
550
£B0
9-
4
SS0
£30
CSC1 3-"SI PROPONE DI ATTUAR
E"
570
5S0
300
CSC £3 -“TENDE A REALIZZARE"
590
CSC 33
CSC43
"AUSPICA”
"PERSEGUE"
"STinQLA"
REM — CCinPU OGGETTO —
OSCI 3 -"UNA COMPLETA DIPENDE
NZA INTERSETTORIALE”
DSC£3-"UNA RISTRUTTURAZIONE
RADICALE”
D$C33-”UN POTENZIAMENTO STR
UTTURALE"
□SC43-"UN MIGLIO R AMENTO A L
I DELLO DI SETTORE"
DSC 5 3- "UN RINNOUAMENTO DI C
ARATTERE GENERALE"
*
REM — FINALE —
a
ESCI 3- "ASSI CURANDONE LA BUG
NA RIUSCITA."
ESC £3“ "PER IL BENESSERE COL
LETTIUQ. “
ESC33-”FER LA RISOLUZIONE D
I OGNI CQNTRQUERSI A, ’’
ES C 43” ”REAL I ZZANDO IL PROSE
ITO INIZIALE."
ESC 53- "POTENZI ANDO LE INFRA
STRUTTURRE . ■
PRINTCHRSC1473 : S05UB 530 : PR
INTASC I 3
GOSUB 590 ; PR I NTBS C 1 3
GOSUB 5S0 : PRINTCSt I 3
GOSUB 5B0 : PRINTDSC I 3
GOSUB 530 : PR I NTES C I 3
PRINT: FRINÌ: PRINT : PRINT"ANC
ORA7CS/N3 "
GET ASsIF A$- M ” THEN 5G0
IF ASO "S" THEN END
GOTO 500
I-INTCRNDC 1 3*5+1 3 s RETURN
CoDrrxxfcve Computar Chiù - 39
=3 £
1/ UTILE
QUALSIASI COMPUTER
Nuovo Sistema
Dopo il successo dell'Enciclopedia di
routine in Basic (iniziata col N.24 di C C.C.),
in data più recente, ecco a voi ...
di Alessandro de Simone
otevamo fame a meno? Come era
possibile interrompere un discorso così
proficuo, soprattutto in seguito alFìnoo-
raggìamento e alle sollecitazioni dei no-
stri lettori? Iniziamo pertanto, a partire
da questo numero, una nuova “sezione"
dedicata sia ai principianti sia a coloro
che ritengono di conoscere il Commodo-
re come le proprie tasche (!).
I primi, con un minimo di buona vo-
lontà, potranno utilizzare le simpatiche
routine pubblicate anche senza sapere
minimamente come funzionano: do-
vranno limitarsi a digitarle e a
lanciarle”.
Siamo comunque sicuri che, prima o
poi, verranno contagiati dal meraviglio-
so Virus del Linguaggio Macchina.
Gli altri, gli esperti, avranno a disposi-
zione una stupenda palestra in cui eserci-
tarsi e scoprire che, in fondo, conoscere
il computer senza applicare F esperienza
acquisita, è come avere un’automobile in
garage e non usarla.
n Nuovo Sistema
Abbiamo più volte detto che un qual-
siasi computer altro non è se non un in-
sieme di mini-istruzioni scritte secondo
un linguaggio, il Linguaggio Macchina
40 - Commodore Computer Club
L’ UTILE
appunto, che può esser ben compreso
solo dal microprocessore (detto anche
micro, per brevità) installato nel compu-
ter stesso.
11 Basic (o un altro linguaggio qualsia-
si) ed il sistema operativo (S.O. ), devono
esser considerati solo dei "filtri” interpo-
sti tra Futilizzatore ed il mieto al solo
scopo di rendere semplicissime operazio-
ni altrimenti mostruosamente comples-
se.
E* difficile immaginare il tempo dedi-
cato alla progettazione delle ROM del
computer per fare in modo che voi, in
seguito alla semplice battitura di alcuni
tasti, possiate pervenire rapidamente a
precisi risultati.
Tanto per fare un esempio, lo studio
del “percorso’ 1 seguito dal micio, dal
momento della digitazione del comando
PRINT'TIPPO” alla visualizzazione
della parola PIPPO è straordinariamente
lungo ed ha richiesto, ai tecnici della
Commodore, numerose ore di lavoro,
tentativi, prove e ottimizzazioni successi-
ve. E tutto questo per rendere Fuso della
tastiera semplice al punto da poter essere
usata anche da un bambino.
Se, dunque, un’istruzione Basic* un
comando, oppure un’operazione qual-
siasi sono, in fin dei conti, un aggregato
di istruzioni in Linguaggio Macchina, chi
cì impedisce di aggiungere altri codici
macchina per arricchire ìe prestazioni del
nostro personal?
L’uovo di Colombo
L'idea che stiamo per presentare può
far sorridere chi il computer lo possiede
da molto tempo. Si sa benissimo che spe-
cifici programmi di utilità, in grado di
aggiungere nuovi, potenti istruzioni al
Basic standard Commodore, sono in cir-
colazione da moltissimo tempo e non
rappresentano una novità per nessuno.
Ricordiamo, tra gli altri, il Simon’s Ba-
sic, il Tool, il Basic 4.0 e perfino le nostre
stesse routine grafiche pubblicate tempo
fa.
Purtroppo, però, tali programmi de-
vono esser utilizzati globalmente e non è
possibile, ad esempio, servirsi contem-
poraneamente di un comando del Si-
mon ’s Basic e di un’istruzione del Basic
4.0.
li motivo è intuibile: la particolare ar-
chitettura delle utility possono esser
spesso in contrasto tra loro, E tutto que-
sto, ovviamente, a parte considerazioni
dì ordine pratico come la rimozione delle
protezioni dei programmi stessi, il loro
disassemblaggio per individuare le “zo-
ne” relative ai comandi desiderati, la ri-
locazione e la fusione degli stessi in un
funico blocco.
Con la sezione NUOVO SISTEMA
intendiamo proporre, appunto» la crea-
zione di routine in L*M. tali che possano
esser utilizzate raggruppandole, magari,
in più versioni fatte su misura per l’uten-
te e le varie occasioni.
Ogni routine pubblicata in queste pa-
gine, insemina» dovrà soddisfare alcune
regole inevitabilmente tassative. Queste
riguardano sia !a sezione Basic (digita-
zione dalla rivista) sia la sezione più pro-
priamente in L + M.
Sezione Bask
* Se risulta necessario , sì utiliza, dappri-
ma, il programma che limita il Top della
memoria RAM disponibile (programma
Top Memo ).
* Le Routine LM vanno caricate grazie al
breve programma standard (denominato,
appunto " Caricatore ”) che contiene tuffi
gli accorgimenti utili per allocare corretta-
mente i codici macchina delle singole rou-
tine.
* In seguito all allocazione, è possìbile
registrare la zona RAM in cui risiede la
routine LM, grazie ad un accorgimento
presente nello stesso " Caricatore * r oppure
mediante F apposito programma “Save
Zona RAM*'.
Sezione READ,,* DATA
Tenendo conto di quanto detto nei
punti precedenti, le righe Basic (da ag-
giungere al "Caricatole”) che contengo-
no la sezione LM vera e propria, devono
possedere ìe seguenti caratteristiche:
• La numerazione inizia coi valore 1000.
m La prima riga ( 1000) deve avere, come
prima istruzione, la cancellazione dello
schermo: PRINTCHR$(147).
• Le righe che seguono la N- 1000 devono
contenere , sotto forma dì PRINT. tutte le
istruzioni idonee al corretto utilizzo della
routine LM
• La riga successiva all ultimo comando
PRINT delle istruzioni precedenti è costi-
tuita dai F unico comando RETURN,
• Seguono, quindi, le righe che, grazie ad
un* istruzione DATA , contengono i codi-
ci macchina decimali relativi alla roteine
LM.
• L'ultima riga DATA deve esser costitui-
ta da due soli valori: — / ( che ha il compi-
to di indicare al programma “Caricatore"
la fine dei codici) ed il valore Cheksum
(che si incarica di controllare t esatta tra-
scrizione della routine).
Sezione L.M,
« Le routine devono esser rilecchili, nel
senso che Putente può decìdere la zona
RAM più idonea alla loro allocazione,
m Devono, di conseguenza * funzionare
perfettamente in modo del tutto indipen-
dente dalla loro collocazione fisica all'in-
terno della memoria RAM scelta dalPu-
tenie *
• Devono essere, per quanto possi bike
indipendenti da routine del Sistema Ope-
rativo e garantire r comunque f un corretto
funzionamento nel caso sia indispensabi-
le riferirsi al S.O.
« Non possono far ricorso a tecniche che
alterino il vettore dell Interrupt.
• Non possono far ricorso a tecniche che
alterino il contenuto dello stock.
• Non possono far ricorso a tecniche che
alterino puntatori vitali del Basic.
• Non devono richiedere alterazioni di
puntatori o di vettori per il loro carica-
mento,
• La prima istruzione della routine deve
essere quella cui far riferimento con la
SYS .
42 - Commodore Computer Club
... e non indurci
nei Syntax Error
e liberaci dagli
Outof Data...
Come interpretare correttamente
afcuni messaggi di errore emessi
dal vostro Commodore, e per
non arrabbiarsi mai più.
Commodore Computer C-ub - 1
Avvertenza
N umerose lettere di nuovi lettori, che si dichiarano in preda al
panico per i continui errori segnalati dal proprio Personal, ci
hanno indotto a scrivere un intero articolo che accomunasse le
spiegazioni necessarie per venirne a capo.
Descriveremo nei minimi dettagli, come al solito, i casi piu
frequenti in modo da rendere chiaro il motivo della generazione
dei messaggi stessi da parte del calcolatore.
E' doveroso precisare, da parte nostra, che una parte dei
presente scritto è sostanzialmente identica all 'articolo "Gli errori
di Sintassi”, pubblicato, in analoghe circostanze, sul N.18 di
C.C.C. La decisione di riproporlo è stata presa per conferire la
dovuta completezza ad un argomento ritenuto basilare.
Nel presente testo, per motivi di brevità, si farà ricorso alla
simbologia qui di seguito indicata:
• Tasto Crsr Destra ( = premere il tasto che consente di sposta-
re il cursore a destra^
• fasto Crsr Sinistra: Tasto Crsr Alto : Tasto Crsr Basso (di
analogo significato)
• ( R): Premere il tasto Return
Attenzione, inoltre, a non confondere il tasto zero “0” col
carattere alfabetico "O".
Due errori molto, molto comuni
Siete pronti? Bene, accendete il computer e incominciamo a.
sbagliare.
Stiamo parlando sul seno nulla è più proficuo, nell’uso di un
tt - Commodore Computer Club
calcolatore, che sbagliare a bella posta per individuare più facil-
mente, in futuro, il motivo delle segnalazioni d'errore
Se avete appena acceso il vostro Commodore (qualunque
esso sìa) dovreste veder lampeggiare il cursore al di sotto della
parola READY. Digitate la seguente istruzione'
PRINT 2 -*-2 (R)
Se avete fatto esattamente come vi abbiamo suggerito, do-
vrebbe esser comparso il risultato detl operazione (4) ed il curso-
re. che è riapparso di nuovo sotto la *‘R di READY, tornerà a
lampeggiare.
Ora seguite alla lettera queste fasi:
• Premete una sola volta il tasto Ins/Del: Il cursore, in conse-
guenza di ciò. si sposta all'estrema destra del rigo su cui si trova
il messaggio "Ready ".
• Premete una sola volta la barra spaziatrice. A questo punto il
cursore è tornato nello stesso punto dì prima (al di sotto di
""Ready").
m Digitate lo stesso ordine di prima (PRINT2 + 2 ) e premete il
tasto Return. .. Sorpresa! Viene emesso il messaggio Out of
Data Error Che diavolo è successo?
Per spiegarci questo strano fenomeno, dobbiamo risalire a!
modo in cui viene gestito, nei computer Commodore, il rigo dei
video su cui digitiamo i dati che. successivamente, devono esser
elaborati dal computer,
Prendete un qualsiasi listato Basic, caricatelo sul vostro Com-
modore digitate List (R) ed attendete che compaia l'ultima riga
Se siamo fortunati (!). il listato dovrebbe comparire assortito
righe di comandi Basic che occupano un solo rigo di schermo
dovrebbero coesistere con righe Baste che ne occupano due
Se. purtroppo, il programma che avete cancato possiede solo
righe Basic costituiìe da un solo rigo di video (o soltanto righe
Basic di due righe video), caricate altri programmi in vostro pos-
fitte* Chih * Ut
sesso Oppure digitatene uno costituito da linee contenenti soltan-
to istruzioni REM seguite da tanti caratteri quanti ne bastano per
realizzare righe Basic lunghe una sola oppure due righe di video.
Supponendo, dunque, che sul vostro schermo sia visualizzato
un programma '‘assortito", premete (imprimendo una sola pres-
sione alla volta) il tasto che comanda il movimento del cursore in
basso. Dovreste riuscire a notare che, (a patto che lo premiate
per un solo breve istante alla volta) quando il cursore giunge in
fondo al video, alla successiva pressione del tasto Crsr una parte
del listato scompare verso Tatto a causa del noto fenomeno dello
“Scrolling" ( = scorrimento).
Ripetendo più volte l'esperimento noterete che lo Scrolling è di
una sola riga se, prima della pressione del tasto Crsr, sulla
sommità del video è presente una riga Basic lunga un solo rigo di
schermo.
li
Al contrario lo scrolling risulterà di due righe se la prima riga
Basic visibile in alto sullo schermo è costituita da due righe video.
In altre parole lo scrolling viene effettuato in modo tale da
evitare la permanenza di “mezze” righe di listato Basic. Ciò vuol
dire che siamo in presenza di un sistema di scorrimento intelli-
gente, capace, cioè, di riconoscere la lunghezza e il "tipo" di ciò
che viene visualizzato sullo schermo in quel particolare
momento.
Per ribadire il concetto, effettuate il seguente esperimento:
• Spegnere e riaccendete il computer { oppure servitevi del
tasto di Reset, se lo possedete),
• Digitate il seguente microprogramma ricordando di premere il
tasto Return al fermine della digitazione di ciascuna delle due
righe:
100 REM RIGA UNO
110 REM RIGA DUE
m Posizionate il cursore (mediante i tasti Shift e Crsr Destra) sul
carattere "O" della parola "UNO" della riga 100.
ÌV ■ Commodore Computi'! Club
• Tenente premuto il tasto Crsr Destra: Noterete che il cursore,
giunto all'estremità della riga Basic (che coincide, in questo
caso, con la riga video su cui è posizionato), riappare sul rigo in
basso che. lampeggiando, supererà. Sembra che non sia suc-
cesso nulla e, in effetti, è proprio cosi,,.
• Posizionate ora il cursore nuovamente alla destra della "O" di
"UNO" di riga 100 e premete , stavolta, la barra spaziatrice
invece del tasto Crsr Destra Noterete che il cursore, giunto
all'estrema destra del rigo, passerà, come prima, ai rigo succes-
sivo ma, fatto impalante, la riga 1 10 viene spostata in basso di
una posizione!
Chi possiede il C-16 si accorgerà che, addirittura, non riuscirà
mai a raggiungere la riga 1 10 tenendo premuta la barra, perchè
tutte le volte che il cursore raggiunge ìi bordo destro del vìdeo, la
riga 1 10 viene spostata in basso di una riga.
Coi C-64 (e col Vic-20), invece, lo scroti avviene solo una volta:
tenendo premuta la barra spaziatrice, prima o poi riuscirete a
raggiungere la riga Basic successiva.
Che cosa c’entra tutto questo col punto dal quale eravamo
partiti?
E' giunto il momento di svelare il mistero.
Quando, ai momento dell’accensione, compaiono i "soliti '
messaggi (Commodore... Basic... Bytesfree... eccetera), il com-
puter non sa (nè può saperlo) il reale significato di ciò che è
visualizzato sullo schermo in quel momento.
‘ Egli’’ è fermamente convinto che ogni riga (oppure ' doppia'
riga) del video rappresenti un gruppo di istruzioni da eseguire
immediatamente oppure appartenga ad un programma Basic da
memorizzare per future elaborazioni.
Quando, dunque, posizionate il cursore alla destra della parola
READY, e premiamo i! tasto Return, il computer è indotto ad
elaborare ciò che è presente sul rigo La parola Ready viene però
"interpretata" come "READ" “Y" e, dato che non vi sono istru-
Commodore Computi Club - V
zioni DATA, viene emesso ['idoneo messaggio "Out Ot Data
Error".
I risultati del primo esperimento suggerita (quello dei
PRINT2 +- 2 . tanto per intenderci) sono ora facilmente com-
prensibili:
• Portandoci col cursore all'estremità del rigo contenente la
paro/a READY, e premendo la barra spaziatrice, non facciamo
altro che comunicare al computer l'intenzione di "legare" la riga
video successiva alla precedente. Se, dunque . digitiamo a que-
sto punto il comando PRINT2 +-2, e premiamo (R), il computer,
poveretto, si vede costretto ad elaborare tutto ciò che ritiene
costituisca la riga Basic su cui è posizionato il cursore al momen-
to della pressione del tasto Return. Naturalmente, con questa
convinzione, elaborerà per primo //comando “READ” “ Y " con te
conseguenze già viste.
La morale che si può trarre è la seguente:
« Spostandosi col tasto cursore non si cambia la "sostanza 1 ' dei
caratteri su cui ci spostiamo,
• Premendo la barra spaziatrice si corre il rischio di "fondere
più righe successive senza che noi ce ne accorgiamo.
Un errore analogo al precedente
Spesso molti lettori si ostinano a definire errati alcuni program-
mi pubblicati perchè, secondo loro, vengono emessi Syntax Error
durante l'elaborazione nonostante i listati siano trascritti fedel-
mente dalla nostra rivista.
Poiché (credeteci) controlliamo più volte i programmi, prima di
pubblicarli, siamo rimasti per lungo tempo perplessi di fronte alle
incrolìabiìi certezze dei... contestatori.
Vt ■ Commodore Compì Ciuf?
Finalmente, un bel giorno, venne a trovarci in Redazione un
lettore munito di un nostro listato registrato (da lui) su nastro per
dimostrarci che l’errore di sintassi c era, eccome.
Naturalmente l'errore c era. ma era da attribuire ad una errata
digitazione da parte dell’ostinato lettore. E veniamo al dunque
cercando di spiegare in che modo è possibile generare errori
inspiegabiii.
• Spegnere e riaccendete il computer oppure premere il tasto di
Reset.
e Cancellate lo schermo (Shift e Clr/Home).
• Digitate ALLA LETTERA la seguente riga (e NON premete il
tasto Refurn finché non ve lo diciamo noi!)
700 A=1 234567890:8 =12345678Q0:A$- 'PIPPO”
Poiché è motto importante per la comprensione dell'errore che
stiamo per commettere, precisiamo che il carattere “ 1 ” del nu-
mero di riga i fi 00) deve essere il primo carattere della riga video.
Vi deve essere un solo spazio tra il numero 100 e la definizione
della variabile A =123 eccetera. Non vi deve essere alcuno
spazio tra le assegnazioni successive.
Se, insomma, avete fatto esattamente come vi abbiamo
detto, a questo punto delle operazioni il cursore dovrebbe lam-
peggiare sulla prima celia video posta al di sotto del carattere
"1” del numero di riga 100.
• Scrivete ora:
110 PRiNT A,B,A$
e, finalmente, premete il tasto Return.
• Cancellate lo schermo e digitate List (R).
Il listato sembra costituito da due righe (100 e 110) ma. in
effetti, rè costituito da un'unica riga dato che, giunti alla fine
"logica” della riga 100, non avete premuto il tasto Return
Il listato, cosi come appare sul video, sembra privo di difetti e ci
C( f r ' " * i ’•> •' ’? f.- Ci.tr ryp i j f e ' ChtL' V •' ì
aspetteremmo che, digitando RUN (R), compaiano i contenuti
delle due variabili (A, B] ed il nome PIPPO,
Col Run, a! contrario, viene visualizzato un dannato "Syntax
Errar in 100". *
Morale:
Quando compare una segnalazione di errore di sintassi fo di
altro tipo) riscontrata in una certa riga, "chiedete" il List relativo
soltanto a quella riga e non ad un gruppo di linee (oppure,
addirittura, all'intero listato). Se, infatti, nel caso appena esami
nato digitate List 100 !R) dovreste accorgervi che qualcosa non
va dato che voi chiedete una sola riga ed il computer (sembra)
darvene due.
Putroppo molti lettori, specie se principianti, digitano semplice-
mente List (R) e, almeno nei casi come quelli visti, non riescono
ad accorgersi che alcune linee visualizzate sono, in realtà, un'u-
nica linea Basic.
Ricordiamo che è possibile incorrere nell'errore descritto posi-
zionandosi col cursore sull'ultimo carattere di una riga Basic e
tentando di posizionarsi sui rigo successivo ricorrendo alla pres-
sione delia barra spaziatrice, in questo caso, come abbiamo già
visto all' inizio, provochiamo involontariamente la "fusione" di
due righe.
In conclusione:
• Premete SEMPRE il tasto Return al termine di una riga Basic,
anche se sembra che non ve ne s/a bisogno.
• Se il computer segna/a un errore in una determinata linea,
chiedete il listato relativo SOLTANTO alla linea segnalata in
modo da evitare equivoci.
• Se volete posizionarvi rapidamente all'inizio della riga suc-
cessiva (senza alcuna altra conseguenza } premete insieme i
tasti Shift e Return
Ma ecco altre cause d’errori
Vi Ih Comm otìc re ■ Computer Cinti
che possano generare uno degli errori più comuni programman-
do in Basic,
L’errore di Sintassi
L'errore più comune che il principiante commette è sicuramen-
te l'errore di sintassi: SYNTAX ERROR.
a
E’ bene rendersi conto che il Basic è un linguaggio del tutto
simile al nostro almeno per ciò che riguarda le regole di sintassi,
di grammatica eccetera. La differenza consiste nel fatto che il
computer è rigoroso, spietato e pignolo Basta un minimo errore
perchè il calcolatore si blocchi irrimediabilmente, tl cervello uma-
no, e la nostra educazione, consentono di comprendere i mes-
saggi che ci rivolgono pur se contengono errori:
... " Vadi a destra e. al primo semaforo, vadi sempre dritto"...
... 'Se avrei fatto una dormita, ora fossi più riposato’’
...ed altre, sono frasi che abbiamo spesso sentito e. nonostante
tutto, perfettamente compreso. Un computer che sentisse parlare
come negli esempi riportati, si scandalizzerebbe immediatamen-
te e comunicherebbe di aver incontrato difficoltà di comprensio-
ne. Purtroppo il calcolatore emette un semplice messaggio
(SYNTAX ERROR IN XXX) senza indicare esattamente il posto
della riga Basic in cui ha riscontrato l'errore segnalato nè, tanto-
meno, il motivo.
Chi possiede un C- 16 oppure un Plus/4, beato lui. ha a disposi-
zione il tasto Help che fa lampeggiare la “zona" interessata
dall’errore.
Vedremo ora in che modo rintracciarlo all'interno di una linea di
programma. Continueremo a commettere errori a bella posta e
ad effettuare le dovute correzioni fino a che tutto risulti in ordine.
Ricorreremo, còme di consueto, a numerosi esempi che. meglio
di un qualsiasi fiume di parole, renderanno chiaro il concetto di
Commodore Computer - tx
errore di sintassi.
Digitate il seguente programma dopo aver spento e riacceso il
computer {e non dimenticate il tasto Return al termine di ciascuna
riga...):
100 A=123; B=A*C: C=10
1 10 PRINT;A PRINT;B PRINT:C
Approfitteremo di questo listato anche per evidenziare in se-
guito alcuni errori di logica. Il problema, che dovrebbe esser
risolto dal programma proposto, consìste nell’eseguire un pro-
dotto tra due valori (“A" e ”C") e visualizzarlo. C’è da ricordare
che il calcolatore esegue le istruzioni l una dopo l'altra a comin-
ciare dalla prima incontrata. Nel nostro caso particolare non
appena digitiamo RUN (ed il tasto Return), il computer esamina il
contenuto della riga con numerazione più bassa (100 nel nostro
caso). La prima istruzione di tale riga associa alia variabile "A'’ il
valore 123. Subito dopo (notare la presenza del carattere di
doppio punto che separa le due istruzioni), si chiede di eseguire il
prodotto di A 'Cedi associarlo alla variabile B. Benché l’operazio-
ne sia corretta, il programma non soddisfa il problema perchè, a
questo punto delle operazioni, la variabile “C” contiene il valore
nullo (0) dato che ogni volta che si digita RUN tutte le variabili
sono automaticamente poste a zero. A nulla vale il fatto che la
terza istruzione di riga 100 ponga C=10.
Tentando di far partire il programma, otteniamo un Syntax error
in 1 10 (che d ora in poi indicheremo semplicemente con S.E.) Ciò
è dovuto al fatto che tra le istruzioni PRINT è indispensabile
inserire il carattere di doppio punto (;).
Come si può notare, il messaggio visualizzato dal computer
ìndica anche la riga del programma Basic in cui è stato riscontrato
l’errore.
A questo punto chiedete il listato (List 1 10) e, servendovi dei
tasti di controllo, ‘'salite” col cursore, posizioniatelo nei posti
X - Commodore Computer Chi)
appropriati e battete il carattere di doppio punto ove necessario.
Non dimenticate di battere it tasto Return alla fine dell'operazione
e. per maggior sicurezza, chiedete nuovamente il listato per
verificare che il calcolatore abbia accettato le modifiche imposte
Digitando RUN non dovrebbero, ora, esservi inconvenienti di
sorta ad eccezione dell'errore '‘logico”, il vostro Commodore,
infatti, stamperà, l’uno sotto l’altro, i valori 123, 0, 10 mentre il
problema richiedeva come soluzione i valori 123. 1230, 10.
Per ottenere una tale risposta è necessario modificare la riga
100 come segue:
100 A = 123:C = 10:B=A'B
Considerazioni suiresperienza
effettuata
• Tra due istruzioni è indispensabile inserire il carattere doppio
punto (:)
• Il computer non può in alcun modo individuare errori logici di
programmazione. L unico modo per individuare errori di questo
tipo consiste nel far “ girare ” il programma e nel verificare i
risultati con altri già noti.
• Tra due caratteri di doppio punto (:) deve figurare un'istruzio-
ne (oppure un comando ) purché COMPLETI.
Esempio:
iOQrPRiNT A.B,C::PRINT A'B’C
(corretto)
1 00:PRINT:A:8:C:PRINT:A‘B: ’C
(ERRATO)
• Il numero di doppi punti tra due istruzioni successive non
costituisce alcun... pencolo come pure il numero di spazi tra due
istruzioni o tré gli elementi di una stessa istruzione. Provate a
modificare il programma precedente come segue:
Commodore i . irnpi.il?: ChJO ' •
100::: A - 1 23::: C =10 :: B =A*C
L'unica differenza consiste nei fatto che il programma occupa
più spazio in memoria e che il listato è di più difficile lettura.
L’uso improprio del doppio punto però , in alcuni casi, facilita la
lettura del listato pur se a prezzo di una maggior occupazione di
memoria. La stessa riga di prima, ad esempio, si può spostare
sulla destra (notare il doppio punto subito dopo la numerazione
di riga):
1 00: A=1 23: C=lO:8=A t B
Tale comodità può esser apprezzata maggiormente nel caso
in cui si disponga di una stampante.
Un altro errore logico
Rimanendo fermi sullo stesso esempio visto all’inizio, cerche-
remo ora di rintracciare altri errori “logici' che nessun computer è
in grado di individuare. In alcuni casi non è obbligatorio i uso del
punto e virgola. Modificate ad esempio la riga 1 10 come segue:
110 PRINT A: PRINT B: PRINT;C
Il risultato che otterrete digitando RUN {e Return) dimostra che:
• Dopo la parola-comando PRINT non è indispensabile il carat-
tere di punto e virgola .
• Se non si inserisce quest'ultimo carattere, il computer inter-
preta PRINT A come se fosse presente il punto e virgola
(PRINT: A).
• Non è indispensabile inserire uno spazio tra l’istruzione e la
virgola (PRINT A produce lo stesso effetto di PRINT A).
Ciò premesso sembrerebbe che il punto e virgola sia un
carattere superfluo. Vedremo ora perchè non è cosi
Modifichiamo ora il programma come segue:
100 A=123:C=10:B=A*B
110 PRINT A::PR(NT C;:PRINT B
X fi Commodore Computer Qui)
Grazie alfa presenza dei caratteri di punto e virgola otterremo,
dopo fi RUN. i tre valori affiancati anziché l'uno sotto ! altro, Allo
scopo di '‘risparmiare'’ caratteri sul listato, possiamo modificare
la riga 1 1 0 come segue:
1 10 PRINT A:C;B
Battendo RUN e Return constatiamo, infatti, che il risultato è
identico al precedente. Poiché abbiamo detto che ii carattere di
punto e virgola è superfluo, ci sentiamo autorizzati a digitare la
riga 1 10 come segue:
110 PRINT ABC
Otteniamo, invece dei tre risultati di prima, un semplice zero (0)
e nient’altro. Come mai?
I computer Commodore permettono di utilizzare variabili defini-
te con uno Oppure con due caratteri, come ad esempio A = 12
oppure AC = 12345 oppure A4=67 Variabili definite con più di
due caratteri sono egualmente accettate ma memorizzate utiliz-
zando i soli due primi caratteri.
Per esempio digitare NU=40 oppure NUMERO=40 o, ancora.
NUOTARE =40 è la stessa cosa. !! calcolatore, in altre parole,
associerà alla variabile "NU" qualsiasi valore, calcolo o elabora-
zione che interesserà NU comunque venga chiamato (NU, NUM.
NUMERO. NUMISANTI eccetera).
Ritornando al listato precedente, quando il computer incontra
PRINT ABC
ritiene di dover visualizzare la variabile "ABC” che. diversa da
"A", "B” oppure “C", vale zero come qualsiasi altra variabile
non dichiarata esplicitamente. Ecco dunque che l'istruzione:
PRINT A;B:C
è profondamente diversa da:
PRINT ABC
proprio per la presenza del carattere di punto e virgola. Volendo
utilizzare variabili con nomi lunghi, ecco un sistema per farlo
correttamente' *
PRINT NUMERO: AREA: IPOTENUSA
Cp’TKnoQ&tpC Tfty ìuter Ouù Xìli
che equivale ai
PRINTNUiARilP
ed è diverso, lo ripetiamo, da PfilNT NUARIP
La comprensione del listato, ovviamente, è migliore nei primo
caso ed ha l'unico inconveniente di occupare piu memoria.
Conclusioni sull’esperienza
• Non sempre il punto e virgola è indispensabile. Talvolta è
possibile sottintenderlo.
• lì punto e virgola (e, analogamente, la virgola) è indispensabile
tra variabili diverse. Omettendolo possono sorgere difficoltà di
interpretazione da parte del computer e portare ad effettuare
elaborazioni non desiderate benché prive di errori.
Le variabili “vietate”
Abbiamo detto che è possìbile utilizzare variabili indicandole
con due caratteri alfabetici e, in certi casi, alfanumerici. Ce ne
possiamo render conto ricorrendo ai seguenti esempi:
AA% = 182: Bf =-43.5: CR=3*45-B1 eccetera
Non tutte le combinazioni sono però permesse. Se provate, in
modo diretto oppure sotto programma, a far eseguire:
LENTE = 18
otterrete un S.E. Il motivo è presto detto: LENTE è una variabile
formata da tre caratteri alfabetici utilizzati anche per la funzione
LEN(X$). Questa ha il compito di “restituire" la lunghezza della
stringa X$ {tratteremo più avanti questo argomento).
Il computer, interpretando carattere per carattere, incontra
dapprima "L". subito dopo “E" e infine *N" A questo punto si
aspetta di incontrare il carattere di parentesi aperta (come, ap-
X/v i ■' i- f^iuh
punto, richiede la corretta sintassi).
Dato che ciò non avviene (incontra infatti il carattere “N”).
emette la segnalazione di errore (S.E.)
Analogamente altre variabili con nomi di fantasia possono
emettere E.S. se. al loro interno, contengono nomi di funzioni o
comandi Basic. Esempi:
LENTO. CATETO (TO)
OGGETTO. ESEGETA (GET)
MAREMMA, PREMIO (REM)
MASCHIO, ASCETA (ASC)
Altre variabili, i cui caratteri, d'altra parte, non coincidono con
quelli iniziali di comandi o istruzioni, sono egualmente “vietate".
ST è infatti riservata al Sistema Operativo (O.S ) del calcolatore
per memorizzare eventuali condizioni di errore nel colloquia con il
registratore e il drive. ST è, come si suol dire, una variabile a soia
lettura: è possibile esaminare il contenuto ma non definirlo. In
altre parole è lecito PRINT ST ma è illecito ST=46. Un'altra
variabile a sola lettura è TI, utilizzata dal calcolatore per comuni-
care i dati relativi all 'orologio interno. Tl$, invece, non è vietata, è
cioè alterabile a piacere dall’utente a patto che la stringa sia lunga
sei caratteri. Per esempio, il comando:
Tl$="1 11007"
" regola’ 1 le ore 11, 10 minuti e sette secondi. Tl$="li" genera,
al contrario, un "lllegal Quantity Error” perchè i caratteri non
sono sei.
Se state utilizzando particolari programmi di utility, come il
Basic 4.0, oppure i più recenti computer C-16, Plus/4. C-128,
altre variabili possono esser considerate vietate. In questi casi,
infatti, le variabili DS e DS$ sono variabili a sola lettura.
Il comando PRINT
«
Come è noto, i calcolatori Commodore accettano, nella digita-
Commodore Computer Club *■ XV
zione, abbreviazioni dei comandi. Per esempio invece di END si
possono digitare, dì seguito, i caratteri "E” ed il tasto “N" battuto
insieme cot tasto SHIFT Invece di PRINT, inoltre, è sufficiente
battere il punto interrogativo (?) eccetera. Siccome è possìbile
sbagliare nella digitazione delle abbreviazioni, il computer, incon-
trando un’istruzione '‘strana ", emette il messaggio S E. In questi
casi è sufficiente visualizzare la riga indicata nel messaggio e
controllarla attentamente. Esempio:,
Se il computer visualizza SYNTAX ERROR IN 430
digitate LIST 430 ed esaminate la riga.
In un solo caso l'errore non è individuabile e ciò si verifica
quando si ricorre all'abbreviazione "?" nella battitura del coman-
do PRINT #: tipico delle operazioni di scrittura dati su periferiche
(registratore, drive, stampante, ecc.). L’abbreviazione cui si ac-
cenna è infatti illegale: è necessario battere per esteso PRINT
oppure ricorrere all’abbreviazione “P” (battuto normalmente) e
tasto "R" (battuto insieme con SHIFT).
Conclusioni sull’esperienza
* Tutte te variabili ( numeriche e stringa) non possono avere
“incorporati" gruppi di caratteri che costituiscono le parole
“chiave” dì comandi o istruzioni Basic.
• 77. ST ed altri nomi sono egualmente vietati (variabili a sola
lettura).
m Tl$ deve sempre essere costituita da sei caratteri,
m PRINT non può essere abbreviato con ?#■ .
Gli errori relativi
a vettori e matrici
Dovreste ricordarvi che, allo scopo di memorizzare valori nu-
XV/ ■ Commodore Computer Ouh
menci, è possibile ricorrere non solo a variabili numeriche di tipo
intero (esempi: AA%=45: B1%=28: X%=-105) o a variabili
decimali (AA =45.67: B1 =-28.54: X=.789) ma anche a variabili
individuate da un numero particolare detto “indice".
Nell’esempio che segue è riportato un breve programma appli-
cativo. Digitatelo dopo aver spento e riacceso il calcolatore.
100 D!MX(12)
1 10 FOR l=OTO 12
120 X(l)=!
130 PRINT X(t)
140 NEXT
li programma non fa altro che inserire, nel vettore X(l), il valore
"I" al posto che compete. Entrambi si incrementano in modo
eguale grazie al ciclo FOR... NEXT.
Spieghiamoci meglio: La riga 100 ‘genera", nella memoria del
computer, uno spazio sufficiente per memorizzare tredici valori
individuati da un indice (numero, cioè, racchiuso tra parentesi)
che può variare da zero a 12 per un totale, appunto, di tredici (e
non 12) “caselle". E’ come se avessimo creato una tabella simile
a quella della schedine del totocalcio con la differenza che. inve-
ce di poter scrìvere in ciascuna di esse soltanto simboli "1", "2"
oppure “X” possiamo memorizzare un qualsiasi valore intero o
decimale, positivo o negativo.
Le righe 110... 140 eseguono un conteggio da zero a 12 e, a
mano a mano che questo prosegue, viene associato a ciascuno
dei tredici elementi il valore stesso del conteggio: nella "casella"
numerata con zero sarà memorizzato il valore nullo, in quella
numerata con “ 1 " il valore unitario e così via.
Il listato, se digitalo correttamente, funziona a dovere e visua-
lizza, dopo aver digitato RUN (R), i tredici valori. Provate ora a
cancellare la riga 100.
Ricordiamo che per cancellare una riga è sufficiente battere il
Cofnmoóorf- Compu*? 1 ' C'at} - XV H
numero della riga stessa (100. in questo caso) e premere il tasto
Return. Alcuni principianti ritengono, erroneamente che una riga
di programma venga eliminata cancellandola interamente me-
diante la pressione della barra spaziatrice Con quest' ultima ope-
razione. infatti, non succede assolutamente nulla e una conferma
de! fatto che la linea esiste ancora la potete ottenere digitando
List (R) ed osservando ciò che visualizza lo schermo.
Accertatevi, dunque che la riga 100 sia effettivamente stata
cancellata chiedendo il listato (List): dovrebbero apparire solo le
righe da 1 tO a t20.
Fate partire il programma con RUM (R). verranno visualizzati
1 1 valori (daOa IOi ed il messaggio “Bad Subscript E rror in 120’’
Se provate a listare la riga in questione (List 120) vi accorgerete
che non vi sono errori di sintassi L'errore riscontrato dai calcola-
tore, infatti, consiste nel fatto che. se un vettore non è dimensio-
nato esplicitamente (cioè è privo del comando DIM), il numero dei
suoi elementi viene sempre e comunque fissato in 1 1 (numerali
da 0 a 10). Il motivo della segnalazione di errore è dovuto al fatto
che, quando il conteggio dei ciclo FOR... NEXT giunge a il. il
computer non può rintracciare nella sua memoria la dodicesima
“casella' 1 e blocca, di conseguenza, l’elaborazione. Se. infatti,
dopo l'interruzione del programma, proviamo a chiedere il valore
di “I” (PRINT I). possiamo notare che il computer risponde con
11 ,
Cancellate ora il programma con NEW (R), e battete il
seguente:
100 DIMX(IOO)
110 INPUT-QUALE CASELLA";N
120 INPUT'DIGITA NUM£RO’’;V
130 X(N)=V: GOTO 110
La riga 1 00 dimensiona un vettore di 101 elementi (numerati da
0 a 100), definito con il carattere alfabetico “X" La riga 110
XVIII Commodore Compule i CluD
chede ii numero della "casella" in cui vogliamo trascrivere il
valore che digiteremo al momento dell'iNPUT di riga 120.
Trascritto il programma, ecco un esempio di come può essere
utilizzato:
RUN (R)
Quale casella ? 53 (R)
Digita numero? -65.98 (R)
Quale casella? 12 (R)
Digita numero? 9868.67 (R)
eccetera.
Nel modo appena visto, nella 53ma "casella' 1 (che chiamere-
mo, più propriamente: elemento) de! vettore “X", sarà presente il
valore -65,98, nella 12ma sarà contenuto 9868.67 e così via
Questo programma, per come è strutturato, non serve assoluta -
mente a nulla se non per individuare casi particolari che possano
generare errori.
Alla domanda "Quale casella?" provate, infatti, a rispondere
con un numero maggiore di 100 oppure con un numero negativo.
!n entrambi i casi il programma si blocca emettendo un nuovo tipo
di errore:
"Quale casella?" 678 (R)
“Digita numero?" 6 (R)
?Bad Subscript errar in 130
Ready,
Si noti che il messaggio di errore non si riferisce alla riga 1 10, ma
alla 130, In questa, infatti, compare l'istruzione X(N)=V Elabo-
rando la riga 1 10 il calcolatore non può sapere in che modo sarà
utilizzato it valore che noi digitiamo al momento dell'iNPUT e si
limita sempiicenenete ad accettarlo associandolo alla /ariabile
"N". Battendo PRINT N. dopo r interruzione del programma.
Commodore Computer Club ■ XfX
possiamo renderci conto del motivo per cui il comando non è
stato eseguito. In casi come questo è sufficiente rintracciare la
riga in cui compare DIMX() e verificare, appunto, che l'indice di
dimensionamento è inferiore a quello che abbiamo cercato di far
accettare.
Modifichiamo ora il programma aggiungendo le seguenti righe
senza cancellare te altre:
1 15 1F NcOOR N>100 THEN GOSUB 200: GOTO 1 10
200 FORI=OTO 100
210 PRINT (“ELEMENTO =*'X(f)
220 NEXT:RETURN
Col programma modificato in tal modo, digitando un valore
negativo o superiore a 100. alla domanda “Quale casella?
l'elaborazione prosegue alla subroutine 200-220 e. subito dopo,
alla riga 1 10 (vedi Goto 1 10 di riga 115)
La subroutine 200-220 visualizza (riga 210) il numero di cia-
scuno dei 101 eiementi del vettore “X", il messaggio “Elemen-
to =” ed il contenuto delio stesso.
In definitiva la subroutine 200-220 farà apparire sul video i 101
messaggi richiesti. Esempio;
RUN (R)
“Quale casella? "99 (R)
“Digita numero?” 5 (R)
"Quale casella?'’ 99 (R)
"Digita valore?" 7(R)
“Quale casella'?*' 456 (R)
0 Elemento—0
1 Elementari
97 Elemento=0
98 Elemento=5
99 Elemento=7
XX Ccjfrw tortore Cóffìfjyter Ciub
100 E!emento=0
‘■Quale casella?”
eccetera
In corrispondenza di ciascuna casella, insomma, sarà indicato
l’eventuale valore digitato in precedenza.
In caso contrario, l’elemento del vettore conterrà sempre il
valore nullo.
Si ricorda che se, alta domanda “Quale casella?" si risponde
con un valore decimale (come: 55.37) il computer, giunto alla riga
130. troncherà automaticamente la parte decimale e porrà "N”
eguale a 55. Si fa notare che. tra l’altro, il programma esaminato
può essere considerato come idea base per sviluppare program-
mi di archivi più complessi.
Cancellate ora il programma (spegnendo e riaccendendo il
calcolatore) e digitate il seguente:
100OIM A(3)
110 FOR 1=0 TO 10
120 PRINT l:A(l): NEXT
Facendolo girare (RUN). però, si ottiene la segnalazione di
errore alla quarta visualizzazione (Bad Subscript Error).
Conclusioni
sulla precedente esperienza
• Un vettore, se non dimensionato esplicitamente, come, ad
esempio DIM A(187), viene automaticamente dimensionato coi
valore massimo dì 1 1 elementi (numerati, però. daOa 10).
• Un vettore, una volta dimensionato, non può accettale indici
superiori a quello già dichiarato.
QomrnntiOtP Computò* ìlub - XX/
• Se un vettore viene esplicitamente dichiarato con un valore
inferiore a 10, non usufruisce dei dimensionamento automatico
che consente il trattamento di almeno 1 1 elementi, ma solo di
quelli dichiarati.
* L’errore “Bad Subscript Error' non ha nulla a che fare col
Syntax Error. Per individuare l'errore chiedete (servendosi dell'i-
struzione PRINT) il valore delia variabile ìndice : è molto probabi-
le che un'errata elaborazione dì quest'ultima variabile, prece-
dentemente effettuata, abbia portato il valore dell'indice oltre il
limite consentito.
Cancellate il programma in memoria (NEW) e digitate questo di
una sola riga:
100 DIM X(25): DIM X{20)
Quando battete RUN viene visualizzato un nuovo errore (”Re-
dim'd Array Error in 100"). Questo dimostra che. una volta di-
mensionato un vettore, non è possibile modificarne il numero di
elementi.
Digitate ora e fate girare questa riga:
100 DIM X(25): CLR: DIM X(20)
Questa riga, al contrario, non genera alcuna segnalazione di
errore. L'istruzione CLR. infatti, cancella tutte le variabili fino a
quel momento definite, compresi vettori e matrici.
Attenzione, quindi, ad usare l'istruzione CLR con oculatezza
per non perdere dati elaborati fino a quel momento.
Digitate ora:
100 DIM X{ 10000)
Digitando RUN si ottiene un nuovo messaggio: “Out Of Memo-
ry Error", lì motivo risiede nel fatto che, dimensionando un vetto-
re, il computer cerca di definire uno spazio nella memoria a sua
disposizione. Poiché ogni elemento di un vettore occupa cinque
byte ( locazione di memoria RAM) oltre ad alcuni byte sui quali
non ci intratteniamo, il calcolatore dovrebbe avere a sua disposi-
zione oltre 50000 byte di memoria. Il Commodore 64 ne ha circ 3
39000 mentre il Vic~20. senza espansioni, soltanto 3555. Oltre
X '■
rnmòdor* Compaie* >. -■■■ ■'
alto spazio per i vettori dovrebbe inoltre esserci posto anche per
altre variabili numeriche e stringa e, non dimentichiamolo, per Io
stesso programma Basic!
Conclusioni
sull’esperienza effettuala
• Non è possibile dimensionare più di una volta un vettore o una
matrice, pena la segnalazione "Redim'd Array Errar",
• Vettori troppo grandi possono superare lo spazio di memoria
disponibile con l'emissione di un “Out Of Memory Errori’.
L’Illegal quantity error
Questo tipo di errore si riferisce a valori numerici illegali, vale a
dire a valori numerici che non possono essere elaborati dal
computer perchè in opposizione alla logica matematica oppure
alle capacità stesse di elaborazione del computer.
Esamineremo i vari casi iniziando dal più semplice. Tutti sap-
piamo che la radice quadrata dì un numero "X” è data da quel
particolare valore che, elevato al quadrato (oppure moltiplicato
per se stesso), genera il numero “X".
Ad esempio la radice quadrata di 1 6 vale 4 perchè 4x4 (oppure
4 elevato al quadrato) fornisce, appunto, il risultato 16. 1 numeri di
cui si desidera “estrarre” la radice, però, devono essere solo
positivi perchè non esiste alcun valore che, elevato al quadrato,
fornisca un numero negativo. Ad esempio non è possibile calco-
lare la radice quadrata di '*-16“ perchè sia “4” che “-4“ elevati al
quadrato, o moltiplicati per se stessi, generano il risultato positivo
16. Ricordiamo che, infatti, meno per meno "fa" più.
Provate a far girare il seguente programma dopo aver cancel-
lato quello presente in memoria:
( 'nmntnrfore Computer Cititi XXIII
too INPUT'VALORE ";X
110 PRINT"RAD!CE=” SQR(X)
120 GOTO 100
Se, dopo aver battuto RUN (R) digitate valori positivi in risposta
alla domanda "Valore?' di riga 100. il calcolatore risponderà
visualizzando {PRINT di riga 1 10} le corrispondenti radici quadra-
te, Il valore più piccolo che è possibile digitare è zero.
Se provate a digitare un qualsiasi valore negativo (come, ad
esempio, -16), l'elaborazione si blocca con remissione del mes
saggio "lllegal Quantity Error in 110". Anche in questo caso la
sintassi del comando è corretta. Ciò che genera il messaggio non
è il comando PRINT oppure SOR, ma proprio il contenuto della
parentesi (detto ARGOMENTO dell 'istruzione), vale a dire il valo-
re associato alla variabile "X". Se. infatti, dopo l'interruzione
dovuta all'errore, chiedete PRINT X. noterete che viene, appun-
to. visualizzato un valore negalivo.
L’elaborazione, in altre parole, si interrompe perchè il program-
matore (cioè voi) non ha contemplato tutti i casi possibili. Se
volete evitare l’interruzione di un programma in casi come que-
sto, dovete inserire, all'interno del programma, adeguate istru-
zioni che, PRIMA di 'pericolose" elaborazioni, decidano se è il
caso di effettuarle o meno.
Aggiungete, ad esempio, la riga che segue al programma già
presente in memoria;
105 IF X< 0 THEN PRINT “ERRORE": GOTO 100
Questa riga consente di esaminare il valore di "X" da voi digitato
al momento dell'elaborazione della riga 100, Solo se il valore è
maggiore o uguale a zero viene effettuato il calcolo, altrimenti
compare la parola "Errore e viene posta nuovamente (Goto
100) la domanda.
Le istruzioni di controllo del tipo IF...THEN sono utilissime se
usate con accortezzaecostituisconopreziosi "filtri" molto effica-
ci che impediscono errori indesiderati e soprattutto, l interruzio-
XX / V - Commodore Computer Club
ne dei calcoli.
Sarebbe opportuno che il lettore si abitui ad inserire i filtri
PRIMA di ciascuna istruzione (o riga Basic) che contenga la
possibilità di cadere in errore.
Esaminiamo ora altri casi in cui è possibile che si verifichi un
errore.
CHRS(X), SPC(X) L'argomento "X" deve esser compreso tra 0
e 255.
PEEK(X): “X” deve variare tra 0 e 65535
GOTO X: L'indirizzo deve essere un valore intero compreso tra 0
e 63999.
POKE X.Y: "X" può variare tra 0 e 65535 mentre “Y" è limitato
all'Intervallo 0-255.
Errori nel trattamento di variabili numeriche intere, decimali,
stringhe.
Un altro errore commesso comunemente dai principianti è
quello di associare a variabili numeriche, stringhe alfanumeriche
e viceversa.
Partiamo come al solito, dai casi più elementari Cancellate il
programma presente in memoria e digitate il seguente:
100 INPUT A
1 10 PRINT A
120 GOTO 100
Questo microprogramma non fa altro che chiedere un valore
numerico (riga 100). visualizzarlo sullo schermo (riga 110} e
ricominciare il ciclo (riga 120). Se non avete commesso errori di
trascrizione (e sarebbe assurdo per un programma cosi sempli-
ce!) battete, ad ogni apparizione del punto di domanda (?i vaioria
caso, decimali, interi, positivi o negativi che siano. Se tutto è in
ordine, gli stessi valori verranno stampati sullo schermo subito
dopo. Consideriamo ora alcuni casi particolari sui quali vale la
Ci - - r m oc? c-'e- Co ■ f - ou ?e r J k j 0 VX 1
pena soffermarsi. Quando compare il punto interrogativo, prova-
te a digitare valori molto grandi come, ad esempio: 10000000000
(dieci miliardi). Vi accorgerete che il calcolatore “traduce" auto-
maticamente il valore da voi digitato nella cosiddetta "notazione
esponenziale’’: 1E +10. Tale simbologia significa: “1” seguito da
(“E+") dieci zeri (“10”). Provate a digitare altri valori (come
quelli riportati nella colonna di sinistra della tabella che segue)
che il computer visualizzerà come nella corrispondente colonna
di destra.
10000000000 1E10
- 10000000000 -1E +10
0.000000001 1E-10
-0.000000001 -1E-1Q
Una trattazione approfondita sul calcolo di numeri espressi con
la notazione esponenziale sarebbe fuori luogo. Il lettore che
volesse approfondire l’argomento troverà esaurienti risposte in
un qualsiasi libro di matematica in uso nelle scuote superiori.
Provate ora a digitare un numero enorme come, ad esempio,
1E +99. Otterrete un messaggio di "Overflow errar in 100“ che
indica l'impossibilità, da parte del computer, di elaborare valori
così elevati.
Sempre utilizzando lo stesso programma, provate ora a digita-
re 1E +1 che, “tradotto" significa 10 (1 seguito da un solo zero).
Vi accorgerete che il computer non lo visualizzerà come lo avete
digitato voi, ma lo stamperà come un “normale" 10,
Considerazioni
sull'ultima esperienza
• Valori troppo grandi o troppo piccoli generano un Overflow
X '"'Vf C. < ■:* ri modo tp Cotti Oj j te F n U j i ■
error.
• Valori formati da un numero superiore alle nove cifre, come
1234567890. vengono automaticamente "tradotti", in fase di
visualizzazione, nella notazione esponenziale (1.23456789
E K)9).
• Valori per i quali sono sufficienti nove cifre per esser rappre-
sentati "normalmente" (come 1.234 E + 3 ) sono visualizzati in
notazione decimale ( 1234).
Provate ora a digitare, avendo in memoria ancora lo stesso
mtcroprogramma finora esaminato, valori numerici ‘ strani 1 ‘ co-
me, ad esempio, con due vìrgole (carattere questo che, dovreste
saperlo, deve esser sostituito da un punto...). Esempio:
123.456.789. Prendete nota di ciò che accade e tenetelo ben
presente nella stesura dei vostri programmi.
Battete un valore al cui interno sia presente il carattere della
virgola (e non del punto) oppure un carattere di doppio punto II
computer risponderà con un messaggio finora sconosciuto: “Ex-
tra Ignored'’.
Ciò vuol dire che il calcolatore non ha accettato (e quindi ha
ignorato) gli “altri' 1 (extra) caratteri digitati dopo il carattere di
virgola o di doppio punto. Esempio:
RUN (R)
? 123:456
Extra Iqnored
123
? 789.456
Extra Ignored
789
Il computer, come si può notare, ha accettato il valore numerico
fornito dalle cifre digitate PRIMA del carattere di doppio punto o di
virgola. Se. invece del punto, battete il carattere dì punto e virgola
Co mn v . ? >jo re c o mo uter Clt k X Vi ;
(esempio: 123,456) verrà visualizzato un nuovo messaggio
"Redo From Start".
Questo stesso messaggio compare anche se digitate caratteri
alfabetici, come "QWERTY" In quest ultimo caso ti computer
non può associare alta variabile numerica A" di nga 100 il valore
(. ma quale valore, del resto 9 ) QWERTY e risponde, di conse-
guenza “Redo From Start” (Rifai dall'inizio) Il computer, insom-
ma. ripete la domanda di prima finche non vi deciderete a battere
soltanto caratteri numerici. Notiamo, però, che al contrario dei
casi precedenti, i due messaggi di errore ("Extra Ignored' e
"Redo From Start") non interrompono il programma
Cancellate il programma di prima e digitate il seguente:
100 INPUT A.B.C
1 10 PRINT“A="A
120 PRINT"B="B
130 PRINT"C="C
140 GOTO 100
In questo caso il computer aspetta che voi battiate tre valori
separati tra loro da una virgola Esempio
RUN (R)
? 1.2.3
A= 1
B-5* 2
C= 3
? 34,67.-45
A* 34
B= 67
C= -45
Se. invece di battere ire valori separati dalla virgola, ne battete
XXVIII Comm « >do>e Computer Club
uno solo, questo verrà associato alla prima variabile ("A”) e,
subito dopo, comparirà un doppio punto di domanda (??) per
ricordare all' utilizzatore che il computer attende la digitazione di
altri valori. Esempio:
? 45
?? 23
?? 78
A - 45
B= 23
0=78
Conclusioni
suiresperienza effettuata
• Con il comando INPUT relativa all'immissione di dati numerici,
l'elaborazione si blocca fino a che non si digitano tutti ì valori
richiesti dal comando.
• Digitando valori separati da virgola o da doppio punto, il
programma non si interrompe ma compare il massaggio "Extra
Ignored" per indicare che alcuni dati digitati non sono stati presi
in considerazione.
• Digitando caratteri alfabetici invece che numerici il computer
non accetta il dato e, pur non interrompendo l'elaborazione,
ripete la domanda dopo aver emesso il messaggio “Redo From
Start'.
Cancellate ora il programma presente in memoria e digitate il
seguente:
100 INPUT A%
110PRINT A%
Commodore Computer CftiO ■ XXIX
120 GOTO 100
Questo programma si differenzia dal precedente perchè si
riferisce a variabili intere (A%) invece che decimali. Se, infatti,
dopo il RUN (R) digitate valori interi compresi tra -32768 e
+32767. questi verranno visualizzati sullo schermo secondo una
modalità analoga a quella di prima (valori minori o maggiori
generano un "lllega! Quantity Errar"). Se, invece, cercale di
digitare valori decimali come, ad esempio. -123.65 (attenzione a
digitare il carattere punto e non quello delta virgola) vi accorgere-
te che sar anno accettati, ma solo per la loro parte intera e nessun
messaggio di errore viene visualizzato.
Modificate ora il programma come segue'
100 INPUT A$
110PRINTAS
120 GOTO 100
Questo, senza dubbio, è molto più versatile dei precedenti.
Infatti proprio perchè l'istruzione INPUT si riferisce ad una varia-
bile stringa (A$), qualsiasi carattere (eccetto la virgola ed il doppio
punto) viene accettato e, grazie alla riga 1 10. visualizzato. Prova-
te infatti a digitare gruppi di caratteri, cioè stringhe, alfabetiche,
numeriche oppure semi-grafiche purché non più lunghe di due
righe video.
Da come abbiamo esposto te cose, però, sembrerebbe che
non ci sia verso di far accettare al calcolatore nè il carattere di
doppio punto (:) nè quello di virgola (,) pena I emissione del
messaggio “'Extra Ignored".
C'è però un semplice artificio per "costringere" ii computer ad
accettare anche questi caratteri oltre a quelli "speciali’ come i
caratteri del colore e del controllo del cursore.
Il trucco, dicevamo, consìste nel digitare, come primo carattere
della risposta, quello delle virgolette (o apici) che si ottiene pre-
G i'Q.'u . dorè Computer Ouh
mendo il tasto Shift e il tasto ”2". Provate a battere:
RUN (R)
? "PROVA: UNO, DUE
PROVA:UNO,DUE
Allo stesso sistema (digitazione delie virgolette) si può ricorrere
nel caso si desideri che i primi caratteri della stampa siano degli
spazi (i cosiddetti Sìank ottenuti premendo la barra spaziatrice).
Cùrn mo ■ ' e Con i; \i ; v- * ; fi d:
tt UTILE
ni”. Consultate, in questi casi, il foglio di
• Non possono far riferimento (nè con
JSR nè con JMPj ad altre routine che ,
volta per volta f verranno pubblicate in
queste pagine.
Un esempio pratico
Supponiamo che il lettore trovi inte-
ressante la routine “GOTO CALCO-
LATO" e che voglia utilizzarla anche in
propri programmi Basic.
Ecco le fasi da compiere, più lunghe a
dirsi che da eseguire:
1 — Accendere il computer (!)
2 — Se questa è la prima volta che utiliz-
zate le routine LM, saltate alla fase N + 5<
3 — Caricate, mediante la sintassi
LOAD“NUOVO SI£/LM’\8,1 (disco)
oppure LOAD“NU0VO SIS/LM”,1,1
(nastro), il gruppo di routine denomina-
te "NUOVO SÌS/LM” che voi stessi,
volta per volta, realizzate ed ampliate
mediante la fase N.13.
4 - Subito dopo il caricamento, digitare
NEW (e il tasto Return), in modo da
mettere "a posto” i puntatori Basic per le
operazioni successive,
5 — Desiderando allocare la nuova routi-
ne “GOTO CALCOLATO” in una zo-
na RAM successiva all'area destinata al
Basic, saltate alla fase N. 7.
6 — Caricate e lanciate il programma
“Top Memo” per limitare l’area destina-
ta al Basic.
7 — Caricate il programma “Caricatore”
(oppure digitatelo dalla rivista).
8 — Digitate, copiandole dalla rivista, le
righe Basic del programma “GOTO
CALCOLATO” che, se avete seguito a
puntino le istruzioni, si “fonderanno” al
programma “Caricatore”,
9 — Registrate normalmente su disco o
nastro, e veri Scale, il programma Basic
così ottenuto.
10 — Digitate RUN ed indicate, quando
richiesto, la locazione di partenza in cui
si desidera trascrivere la routine LM, Nel
caso abbiate già in memoria (fase N.3)
una zona RAM contenente routine in
LM, prestate la massima attenzione a
non creare pericolose “sovrapposizìo-
ap punti (Mappa della memoria) da voi
scritto durante la fase N.ll effettuata la
volta precedente,
11 — Annotate su un foglio di carta (che
avrà la funzione di “Mappa della memo-
ria” del NUOVO SISTEMA) la locazio-
ne iniziale, quella finale e tutte le infor-
mazioni utili che sono comparse sullo
schermo. Net caso sia già presente in me-
moria un gruppo di routine LM, abbiate
l'accortezza di indicare, come indirizzo
di partenza, la locazione SUCCESSIVA
a ir ultima locazione della volta
precedente.
12 — Per verificare il funzionamento del-
la routine, caricate il programma DEMO
ad essa relativo, riportato sulla rivista, ed
attivarlo.
13 — Se siete soddisfatti del funziona-
mento, e se volete arricchire il vostro
NUOVO SISTEMA delia nuova routi-
ne, caricate il programma “Save Zona
RAM” ed indicate la prima e Pultima
locazione della zona da registrare predi-
sponendo Papposìto disco (o nastro) ed
aggiungendo sul foglio le nuove indica-
zioni necessarie per il corretto utilizzo
della nuova routine “GOTO CALCO-
LATO”. Il nome da assegnare al file po-
trà, ovviamente, essere qualunque. Ad
esso, comunque, faremo riferimento in-
dicandolo col nome: “NUOVO SIS'
LM”.
Come utilizzare il programma
“Top Memo*’
Per facilitare, soprattutto ai lettori
principianti, V utilizzo delle routine LM
che verranno di volta in volta riportate su
queste pagine, indichiamo qui di seguito
tutte le operazioni da compiere per rea-
lizzare un NUOVO SISTEMA che defi-
nì amo ^pcr ora, standard” ma che, una
volta compreso il meccanismo per arric-
chirlo sempre di più, potrà essere abban-
Commodore Computer Club - 75
U UTILE
donato e sostituito da altri, personalizza-
ti a seconda deile vostre specifiche
esigenze,
La funzione Fre(0)
Poiché, per motivi che non stiamo qui
a dire, il Sistema Operativo dei computer
Commodore utilizza^ nel gestire le strin-
ghe, TUTTA la memoria RAM disponi-
bile da Basic, può succedere che Putente
trascriva una routine L.M. in una zona dì
memoria RAM ritenuta a torto libera e si
accorga (spesso quando è troppo tardi
per porre rimedio) che il S O, ha cancel-
lato, magari solo in parte, la routine
stessa.
Per evitare che ciò avvenga è indispen-
sabile trarre in inganno il computer co-
municandogli che la memoria RAM di-
sponibile è più limitata del solito. Ciò si
ottiene alterando iì contenuto dei pun-
tatori 55 e 56 (denominati, appunto. Top
of Memory), Per rendercene conto, ac-
cendete il Commodore 64 e digitate:
PRINTFRE (0)
oppure, se il valore che ne risulta è nega-
tivo, battete PRINT2H6 -FRE(0)
Come risposta dovreste ottenere, se
avete appena acceso il computer, il valo-
re 38909 che corrisponde, grossomodo,
al valore del messaggio che compare
quando accendete un Commodore 64.
Se inoltre, digitate:
PRJNTPEEK (55); PEEK (56)
ottenete come risposta: Oe 160, Infatti
160x256+0=4(3960
Tale valore, dovreste saperlo, coni-
sponde alla prima locazione dì memoria
che non risulta gestibile direttamente dal
Basic. Da 49152 a 53247 è presente un'a-
rea di memoria RAM (“inaccessibile” al
Basic) che può essere utilizzata per usi
particolari, come routine in L.M. c utili-
ty di vario genere.
Chi si serve del Turbo Tape, come di
tool di vario tipo (o delle routine grafiche
di Toma), sa benissimo che quest’area
risulta, purtroppo, inutilizzabile dato
che è già occupata, appunto, da utility
varie. Per continuare ad usare le utility
cui il lettore è abituato e, contempora-
neamente, quelle pubblicate nella rubri-
ca Nuovo Sistema, ricorriamo ad un
trucco semplicissimo che, nonostante ri-
duca l'effettiva area a disposizione del
Basic, lascia comunque urta quantità di
memoria ragguardevole ed evita il ricor-
so a tecniche (selezione del banco di me-
moria, utilizzo della RAM posta “sotto’ 1
le ROM eccetera).
Provate, infatti, a digitare:
PO KE , 80 : CLR : PRINTFR E (0)
Otterrete in risposta: 18429 Bytes
Free. Ciò vuol dire che, con la semplice
operazione dì una POKE, è possibile se-
lezionare la quantità di memoria RAM
gestibile da Basic. Sarà quindi possibile,
nel caso specifico appena esaminato, uti-
lizzare per gli scopi più disparati i (quasi)
ventimila byte precedenti la locazione
40959. L’unica limitazione sarà costituita
dalla lunghezza massima di un program-
ma Basic che non deve superare i 18429
byte compresi quelli relativi a variabili,
stringhe, matrici eccetera.
Utilizziamo “Top Memo"
Caricate il programma “Top Memo”
pubblicalo in queste pagine e, dopo il
RUM, digitate 20000 come risposta alia
domanda “Ultima locazione?".
Premuto il tasto Return appare il
messaggio:
Ultima Locazione: 20000
P o ke56 ,78 :Poke5 5 ,33 :
Clr:PrmtFre(0)
Confermi? (£/N)
Se non siete soddisfatti del valore im-
postato, premete un tasto diverso da “S”
ed il programma ripartirà.
In caso contrario, premendo una
tecnica particolare (incorporata nel pro-
gramma), detta del Buffer dì Tastiera, si
incarica di alterare i puntatori 55 e 56 e di
visualizzare la nuova quantità di memo-
ria disponibile (circa 17657 byte). La rea-
le quantità dì memoria disponibile è, tut-
tavia, quella che rimane, dopo aver can-
cellato il programma Top Memo. Prova-
te infatti (dopo aver registrato a parte il
programma) a digitare:
NEW:PRINT FRE(0) ' *
Otte rete, in risposta, 17950.
Se avete seguito i nostri suggerimenti,
nel vostro Commodore 64 sarà quindi
presente una quantità di memoria RAM
completamente ìndipendente dal Basic.
Tale zona di RAM si estende dalla loca-
zione 20000 a 40959 e sarà utilizzata, vol-
ta per volta, per allocare le varie routine
in linguaggio macchina che costituiscono
il vostro “NUOVO SISTEMA” perso-
nale.
100 PRINTCHRSC1473 "FISSA TOP DI
MEMORI A”
110 INPUT "ULTIMA LOCAZIONE” ;X :
X-X+l
115 FRINTCHRSC1473 "ULTIMA LO GAZ
I ONE ; " X - 1 : GOSUB 1B0
120 PRI NT: PRIMI "CONFERMI? CS/ND
»
130 SET AS:IF AS-”” THEN 130
140 IF AS<>”S” THEN RUN
150 PRINTCHRSC1471; :S05UB 1B0
160 POKE 130,3: POKE 631,13: POKE
632, 13: POKE 635,0
170 END
1B0 X1=INTCX/E56);X2=X“CX1*256)
190 PRINT”Pn56, ”Xl”:Pr55, ”X2”:C
LR:?FREC05": RETURN
76 - Commodore Computer Club
U UTILE
Come utilizzare il programma
^Caricatore”
Dopo aver fissato il Top dì memoria, e
dopo aver eventualmente caricato la vec-
chia versione del NUOVO SISTEMA
che si desidera aggiornare (seguita da
NEW per “sistemare” i puntatori), cari-
cate il “Caricatore \
Subito dopo digitate la routine che vi
interessa che, come rune le altre, inizia
da riga 1000. Per sicurezza registrate e
verificate, alla fine della trascrizione, il
programma Basic così realizzato: sarà
utilissimo in caso dì errore.
A questo punto digitate il fatidico
R UN e, alla domanda relativa a ìFin diriz-
zo da cui volete allocare, digitate il vaio-
re scelto.
Dopo alcuni istanti verrà visualizzata
la locazione iniziale e quella finale, occu-
pate dalla routine, ed una richiesta dì
conferma. Digitando il tasto diverso da
“S" il programma riparte.
Se tutto ci sembra a posto, invece, la
pressione del tasto “S : ' visualizzerà nuo-
vamente le istruzioni per il corretto uso
della routine ed una serie dì POKE (ab-
breviate) che, se vi posizionate sopra col
cursore e premete il tasto Return, altere-
ranno i puntatori in modo da registrare,
su disco o nastro, solo la zona RAM
appena allocata e che contiene la nostra
routine LM,
Se, invece, volete allocare altre routi-
ne LM, seguite la procedura descritta per
ciascuna routine avendo Punica accor-
tezza di non “sovrapporvi*’ ad altre rou-
tine già presentì in memoria. Solo alla
fine potete registrare Finterò blocco di
routine in un sol “colpo”, ricorrendo al
programma “Save Zona RAM' 1 ,
100 REM PROGRAMMA CARICATORE
110 REM PER ENCICLOPEDIA
120 REM DI ROUTINE IN
130 REM LINGUAGGIO MACCHINA
140 :
150 REM PER UTILIZZARLO, LEGGI
LE ISTRUZIONI PUBBLICATE SU
1S0 REM COMMODORE COMPUTER CLUB
170 :
100 Y*=-l : GQSUB 1000 ; FRINÌ : INPUT
”OA QUALE LOCAZIONE” ;X
190 READ U : Y“Y+1 : IF UK0 THEN 21
0
200 GOTO 190
210 FRINT^FRIMA LOCAZIONE =”X
220 PRINT”ULTIMA LOCAZIONE ^”X+
Y“l: FRINÌ
230 FRI NT” CONFERMI? C5/N)” '
240 GET ASM IF* A$=” ” THEN 240
250 IF A$=”5” THEN RESTOSE : T=X
: DOTO 200
200 RUN
270 :
2R0 GOSUB 1000: PRINT: PRINT”ATTE
NDER E. . . ” : FRINÌ : U-0
290 READ B : I F B>-0 THEN POKE T,
B:T=T+1;U=U*B:GQT0 290
300 READ B : IF B<>U THEN PRINTiP
R XNTCHRS C ì 8 ) ^ERRORE DI TRA5
CRIZIDNE” : END
310 FRINT”RQUTIN£ ALLOCATA DA”X
” A ”T“1 ”C0MPR , ” : FRI NT
320 FRINT^ATTIUARE CON SYS”X:PR
INI
330 X1=INT CX/25G) : X2~X-C Xl^eSS)
: FRINÌ ”P0KE44 3 “XI " : P0KE43 , ”
X2 ■
340 Y1 = INT (T/2563 : Y2-T“C Y1^256^
: FRINÌ” : P0KE4S , ”Y1 ” : P0KE45 ,
”Y2 : END
Come utilizzare il programma
i4 Save Zona RAM”
Dopo aver allocato le routine che più
vi interessano (in aggiunta, magari, ad
altre caricate precedentemente), carica-
te questo programma e lanciatelo col so-
lito RUN.
Alla domanda “Prima locazione?” ri-
spondete indicando il numero del byte
che rappresenta il primo codice macchi-
na della prima routine presente in me-
moria. Analogamente, alia domanda
“Ultima locazione?” digitate il valore
de IF ultimo byte del F ultima routine LM
preseme.
AUa richiesta di conferma premete il
tasto "S”, indicate con 1 (disco) oppure 2
(nastro) il tipo di memoria di massa che
intendete utilizzare e, in seguito, il nome
che intendete assegnare al file.
Come già detto in altre parte dell'arti-
colo, noi lo indicheremo con NUOVO
S1S/LM ma voi, ovviamente, potrete as-
segnare il nome die più vi aggrada.
A questo punto il file — programma
appena registrato conterrà tutte le routi-
ne LM di cui conserverete gelosamente
la mappa della memoria allo scopo di
utilizzarle in seguito. Ricordiamo che
ogni routine viene eseguita dal comando
SYS(XX) in cui “XX” è il valore del
primo byte della routine in questione* E*
ovvio che, in alcuni casi, è necessario
set tare altre locazioni prima del coman-
do SYS. Ogni routine pubblicata, ovvia-
mente, indicherà tutte le informazioni
necessarie per un corretto utilizzo del
vostro Nuovo Sistema.
Commodore Computer Club - 77
L’ UTILE
100 REM PROGRAMMA IDONEO PER
110 REM REGISTRARE 20NE DI
150 REM MEMORIA AUTOMATICAMENTE
130 REM SU CASSETTA □ DISCO
140 :
150 PRINTCHRSC 147) : INPUT “LOCAZ
IONE INI2IALE” ; X
160 INPUT "LOCAZIONE FINALE”; T:
T-T+l
170 PRINT:PRINT” INIZIO: "X: PRINT
"FINE: ”T-1
100 IF T<-X THEN RUN
130 PRINT: PRINT”CONFERMI? (S/N)
n
200 SET AS : I F A$=”” THEN 200
210 IF ASO ”S’ J THEN RUN
220 PRINT: INPUT "NOME FILE"; AS
230 FRINT"1- CASSETTA ” : PR I NT”2-
DISCO"
240 GET 8$ : I F BS-”” THEN 240
250 IF BS“ ” 1 ” THEN UI-l:GOTO 280
260 IF BS=”2” THEN W=8:G0T0 2B0
270 BOTO 240
280 PRINTCHRSC147) ;
2S0 POKE 198, 5 : POKE 631, 13: POKE
832, 13: POKE 633 , 13 : PQK£ 63
4, 13: POKE 635,0
300 Xl“INTCX/256) :X2-X-CXÌ*256)
: PRI NT”Pr44 , ”X1”: Fpi3, ”X2;
310 Y1-INTCT/2S6) : Y2-T-(Y1*2563
: PRINT” :Pf“4G, ”Yl”:Pr45, ”Y2
320 PRINT: PRINT: PRI NT”S*”CHR$C3
43 ASCHRS5C343 " , ”U”, 1”
330 PRINT : PRINT; PRINT : PRINT : PRI
NT”SYS64738”
GOTO calcolato (per C-64)
( 20000 / 20011 )
di Piantarlo Mariani
Molti dì voi, sviluppando programmi lunghi e complessi,
avranno avuto difficolta ncIVuso dei saiti condizionati. I
problemi dei tipo: “Come inserire in un programma molte
linee del tipo IF.., THEN GOTO,,."? capitano quando si
ha un numero elevato di controlli, alFintemo di un pro-
gramma Basic, che impongono la presenza di numerose
linee del tipo esaminato. Ciò non solo peggiora le leggibilità
del programma, ma lo allunga considerevolmente, creando
problemi perciò che riguarda Toccuparione di memoria.
Sarebbe molto piu semplice e funzionale raggruppare
tutte le linee in una sola per mezzo di una spedale istruzione
del tipo CGOTO (GOTO C alcolato) che salta ad un deter-
minato numero di linea elaborato in precedenza. Un i si na-
zione di questo tipo, come ben sappiamo, non è purtroppo
presente nel Basic del C-64.
Per nostra fortuna ì progettisti della Commodore hanno
sviluppato un Sistema Operativo modulare ben strutturato,
tale da permettere, utilizzando alcune routine dello stesso
SO, dì "costruire" la CGOTO in soli 12 byte dìLM,
Innanzitutto spieghiamo che cosa è e come funziona la
routine proposta.
Questa permette di inserire, in un qualsiasi programma
Basic, istruzioni simili a CGOTO A, oppure CGOTO
100+R*4, ed altre che, come intuibile, effettuano un salto
alla linea calcolata dall 'espressione (oppure alla variabile)
presente dopo Ftstniziorie stessa. L'utilità di una istruzione
del genere trova applicazione in una miriade di casi: si
potrebbe introdurre direttamente, da tastiera, la linea da
eseguire: oppure si potrebbe calcolare una formula e saltare
in base al risultato di tale elaborazione eliminando, come
detto prima, lunghe e noiose righe di IF,.. THEN...
GOTO,
Simulare una CGOTO è estremamente semplice, ma,
prima dì utilizzarla, può essere interessante conoscere come
funziona la GOTO “normale " presente nel C-64.
Dapprima (ed è proprio questo il punto che interessa
maggiormente) la GOTO “prende” il numero presente do-
po il comando stesso e. in seguito, controlla che tale valore
rientri nei limiti ammessi (numero intero compreso tra 0 e
63999); quindi ricerca II numero di linea “incriminato": se
questo non esiste ali’intemo dei programma Basic, visualiz-
za il messaggio “Undef ó statement errori', altrimenti setta i
puntatori del programma al nuovo numero di linea ed ese-
gue qucst’ultima.
Purtroppo, per un errore di programmazione del S.Q.
(non sappiamo se voluto o meno), la routine LM che "chia-
ma” la GOTO, e che serve per individuare il numero di
linea, accetta in ingresso solo valori numerici scritti in forma
esplicita e non sotto forma di variabili o dì espressioni
numeriche.
Questa limitazione può facilmente essere aggirata: è risa-
puto che nel S.O. è presente anche la routine per accettare
valori da calcolare mediante espressioni oppure variabili.
Tale intuizione è confermata da una forma sintattica dell'i-
struzione POKE (tanto per citarne una), che, appunto,
accetta per parametri anche variabili o espressioni
numeriche.
Basterà quindi, per caricare il numero di linea da calcola-
re, utilizzare la stessa routine della POKE e saltare f in segui-
78 - Commodore Computer Cfub
L’ UTILE
la, al "normale" GOTO, per ottenere io scopo prefissato.
Il salto, a dire il vero, non sarà effettuato proprio all'inizio
della routine GOTO, ma più '‘avariti " in, modo da evirare
l'operazione che esamina de! numero di linea, dato che a ciò
provvede la nostra routine LM,
Per realizzare il tutto è sufficiente effettuare solo quattro
salti al sistema operativo, per un totale di appena dodici
bvte.
■m-
Chi desidera studiare il disasscmblato» noterà che la pri-
ma istruzione (JSRSAEFD), serve per controllare la pre-
senza di una virgola. Come, infatti, diremo in seguito» la
sintassi della nuova istruzione sarà:
SYS XXXX.Espressione numerica
e se il carattere virgola (,) non risulta presente, viene visua-
lizzato il solito SYNTAX ERROR.
I due JSR seguenti (!SR$ADSA e JSRSB7F7) sono gli
stessi utilizzati dalla POKE Commodore (e da altre istruzio-
ni analoghe) e servono, appunto, per caricare il numero, la
variabile oppure una qualsiasi espressione (purché numeri-
ca), presente dopo il comando GOTO, Se regressione non
è numerica viene segnalato un TYPE MISMATCH ER-
ROR.
II quarto salto alla subroutine (JSRSA8A3) scavalca i tre
byte presenti dopo la normale istruzione GOTO, evitando
così di far eseguire alla stessa un lavoro già fatto in prece-
denza.
1000 FRINTCHRSC 147) "QUESTA RQUTI
NE CONSENTE DI EFFETTUARE U
N GOTO CALCOLATO"
1010 RETURN
1050 DATA 3£ , £53,174,32, 13B t 173,
3£ f 247 , 103,76 ,163,160
1030 DATA “1 j 1671
Come utilizzare GOSUB calcolato
m Caricare io digitare dalla rivista) tl programma caricatore
dopo aver fissato il Top dì memoria ( mediante il programma
Top Memo) a 20000.
* Digitare la routine GOSUB Calcolato pubblicata in queste
pagine (numerata da 1000 in poi).
• Registrare e verificare il programma così realizzato.
a Digitare RUN ed indicare il valore 20012 (o atiro che il
lettore ritenga idoneo falla domanda: "Da quale locazione?’ '
a Premere il tasto i4 S” alla domanda ** Confermi T**
a A questo punto la routine è posizionata dalla locazione
200 12 alla 20049 e si può attivare con S 200/2.
a // programnta dimostrativo 'Demo Gasub Calcolato ' . da
caricare dopo aver seguito le fasi precedente costituisce un
esempio di utilizzo.
1 00
110
ren deho
REM BOTO CALCOLATO
120
130
INPUT "GOTO
0/1803 " ; X
SY520000 , X
(140/150/180/17
140
PRI NT "QUESTA
”:G0T0 120
E*
LA
RIGA
140
1E0
PRI NT "QUESTA
” : GOTO 120
E'
LA
RIGA
1S0
160
PRINT"OUESTA
” : GOTO 120
E’
LA
RIGA
160
170
PRI NT "QUESTA
” : GOTO 120
E'
LA
RIGA
170
180
PRI NT "QUESTA
” : GOTO 120
E 1
LA
RIGA
180
GOSUB calcolato (per C-64)
(20012/20049)
dì Giancarlo Mariani
Per la CGOSUtì non c'è molto in più da dire di quanto
non sia stato detto sulla CGOTO, Studiando il disassembla-
to del S.G.» si nota che» come prima operazione, vengono
registrati nello stack gli indirizzi di ritorno, Solo in seguito
viene effettuato un salto a distruzione GOTO.
Quando si incontrerà l’istruzione RETURN, verranno
prelevati dallo stack gli indirizzi memorizzati nella fase pre-
cedente e ripristinato il normale flusso del programma.
Purtroppo la routine di GOTO non viene "chiamata"
all'inìzio del GOSUB, ma solo dopo aver salvato i vari
puntatori» per cui è stato necessario copiare in RAM tutta la
routine di GOSUB ed attuane su di essa le modifiche
necessarie.
Chi ne ha voglia, può studiare il dìsasscmblato: la routine»
fino al JSRS0079, è identica a quella del S r O, (posizionata
normalmente a SA883). In seguito i! "solito" JSRSAEFD
controlla la presenza della virgola ed i due JSRSADSA e
JSRSB7F7 "prendono" il numero di linea.
Si salterà quindi alla routine di GOTO +3 byte
( JSR$ASA3) per le ragioni spiegate in precedenza.
Dopo una CGOSUR si può inserire una qualsiasi altra
istruzione sulla stessa linea Basic purché, ovviamente» sepa-
rata dal carattere di doppio punto {:). Questa sarà eseguita
al ritorno dalla subroutine chiamata, A questo scopo serve
l’ultimo salto ( JMPSA7AE).
1000 PR3NTCHRSC 147 3 "QUESTA RQUTI
NE CONSENTE DI EFFETTUARE U
N GOSUB CALCOLATO"
1010 RETURN
1050 DATA 169,3,32.251 ,163,165,1
Commodore Computer Ctub - 79
LUTILE
53,72,165,152,75,165,50 , 72
1030 DATA 165,57,72,169,141,72,3
2,121,0,32,253,174,32,136
1040 DATA 173,32,247,183,32,163,
166,76,174,167
1050 DATA -1,4505
Come utilizzare GOTO calcolato
• Caricare (o digitare dotta rivista I ti programma caricatore
dopo c ver fissato il Top di memorie (mediante U programma
Top Memo l a 20000,
• Digitane la routine "GOTO Calcatilo" pubblicato in que-
ste pagine (numerata da 1000 in poti.
m Registrare e verificare U programma coti realizzato
• Digitare RUN ed indicare ti valore 20000 f o ohm che il
lettore ritenga idoneo} alia domanda: "Da quale
tacazianeT’.
• Premere il tasto "i" alla domanda "Confermi?".
• A questo punto la routine e posizionata dada locazione
20000 alla 2001 1 1 si può attivare con S B 20000.
m II programma dimostrativo "Demo Goto Calcolato", da
caricare dopo ater seguita le fisi precedenti, costituisce un
esempio di utilizzo-
100 REM DEMO
110 REFI GOSUB CALCOLATO
120 INPUT “GQSUB C140/150/1S0/1
703 " ; X
130 SYS20012 , X : GOTO 120
140 PRINT"QUESTA E’ LA RIGA 140
*: RETURN
150 PRI NT "QUESTA E’ LA RIGA 150
" : RETURN
160 FRINT-QUESTA E’ LA RIGA 160
" : RETURN
170 PRI NT "QUEST A E' LA RIGA 170
RETURN
1NTERP Stringa (par C-04)
(20050/20128)
di Giancarlo Mariani
Vi t mai capitato di sviluppare un programma in grido di
eseguire calcoli oppure di tracciare il grafico di funzioni
matematiche, trigonometriche , o altro?
Il problema più diffìcile da risolvere, in casi come questi,
risiede nel dover inserire, m qualche modo, la funzione da
calcolare airin terno del programma.
Come beo sappiamo, non t possibile, ad esempio, asse-
gnare: A$-“Y-FUN2<Xr e. io seguito, calcolare il valo-
re di “Y" a seconda della funzione contenuta in AS.
Per aggirare l'ostacolo vengono» di norma, escogitar, di-
versi metodi, uno dei quali consiste nel fa r scrivere sul video
un numero di linea Basic» contenente la funzione da calco la-
re» e in seguito, ricorrendo al buffer di tastiera, simulile la
pressione del tasto Return ottenendo, in tal modo, linseri-
menro della nuova linea alt 1 interno del programma .
Questo metodo funziona benissimo, solo che, per scrive-
re la linea Basic desiderata , è necessario cancellane lo seher^
mo.
Al momento deirinserimemo. inoltre, tutte le variabili
fino a quel momento elaborate vengono annullate con gh
inconvenienti che fc facile immaginare.
Per fortuna Mamma Commodore ri viene incontro [veiv
/j va perle,..), allocando nel S.O. alcune routine adatte a
risolv ere il problema in modo veloce c sicuro.
Esaminiamo passo per passo la soluzione che proponia-
mo.
Come detto prima, abbiamo bisogno di una routine che
prenda in considerazione una stringa qualsiasi e ricrea a
tramutarla in espressione eseguibile da Basic,
La cosa È molto più semplice di quanto sembri. Esiste, nei
C*64. una particolare zona di memoria chiamata Basic Input
Buffer (posizionata da SU20Q) in cui vengono temporanea-
mente inseriti i comandi Basic prima di essere tokenizzati.
ossia convertiti in codia di un solo byte.
Questi comandi vengono tokenizzati (appena si preme il
tasto Rei um) cd eseguiti subito, se in modo diretto» oppure
allocati in memoria, se preceduti da un numero di linea.
Da questo fatto si intuisce che» aH'tatcrao de! S.O. deve
esistere una routine che "prende" la strinp comando da
$fl2l)0: deve esistere, inoltre, urTnltra routine che la tokentz-
za e. infine, una terza routine che provvede ad eseguire il
comando to Cenizza to.
Basterà quindi trovare il modo di inserire la nostra stringa
comandi a partire da $0200 e richiamare le routine interessa-
le per eseguirla immediatamente.
Questo t proprio quello che fanno gli ottanta byte* LM
del programma proposto.
Studiamo il disassembLato; per prima cosa viene control-
lato seri ù in modo programma, in caso contrario è stampato
90 - Commodore Computa* Oub
LUTILE
i] messaggio ILLEGAL DIRECT, In seguito, dopo aver
controllalo In virgola di separazione (verrà spiegata dopo la
sintassi del comando) si preleva La stringa presente dopo il
comando stesso e la si trasferisce, tramite una breve routine,
nel Basic Input Buffer.
Non ci si deve dimenticare a questo punto di "salvare” i
puntatori del Basic, allo scopo dì permettere una cornetta
ripresa del l'elaborazione dopo l'esecuzione del comando.
Dopo aver inserito uno zero al termine della stringa, per
indicare la fine del comando, si predispone il modo diretto
( ricordiamo che si può lokcfiìzzare solo in modo diretto). In
seguito vengono settati i puntatori del Basic (t?A e J7tì) al
comando da eseguile c, con J$R$A57C, si loke ruzza il
comando. Subito dopo, per mezzo di JSKStinT*, si preleva il
comando tokenizzato c lo si esegue con la routine posta in
SA7FD. Terminata l'esecuzione, si ripristinano i puntatori
dd Basic c il modo programma, in modo da riprendere
l'eia boranone esattamente dal punto in cui era stata sospe-
sa.
La stnnga rappresentante i comandi o le istruzioni da
eseguire* può contenere qualsiasi codiando Basic esclusi
Goto e Gosuh
Un'altra limitazione è costituita dal fatto che è possibile
inserire un solo comando alla volta. Non è quindi possibile
assegnare più comandi separati dal doppiti punto { ;). Se un
comando non viene riconosciuto saro segnalato il solito
SYNTAX ERROR ,
1000 PRINTCHRSC 1473 "QUESTA ROUTI
NE CONSENTE DI INTERPRETARE
IL CONTENUTO DI " ;
1010 PRIMI "UNA STRINGA ALFANUMER
ICA C0F1E SE FOSSE UN GRUPPO
DI COMANDI BASIC"
1020 RETURN
1030 DATA 165.157, 240,5,162,21,1
00,0,3,32, 253 , 174 , 32 . 158
1040 DATA 173,32, 130, 103, 165. IBS
, 133,251 , 165, 123,133,252,13
2.2
1050 DATA 160.0,177,34,153,16,2,
200 , 136 , 2 , 208 . 246 , 169 , 0
1060 DATA 153, 16, 2, 169, 12B, 133, 1
57,169,16,133, 122, 169,2,133
1070 DATA 123,32,124,165,32,115,
0,32,237, 167,169,0,133, 157
1080 DATA 165,251,133,122,165,25
2,133, 123,96
1090 DATA -1,9497
Come utilizzare DVTERP A$
• Caricar? lo disiare dalia rivista J il programma caricatore
dopo aver fissato il Top di memoria f mediante il programma
Top Memoiu 20000.
• Digitare la routine IN TER P A$ pubblicata in queste pagine
fmtmemtù da flMMtin poi).
• Registrane e venfk arv il programma cast realizzato,
• Digitare RUN ed indicare il valore 20030 (o altro che il
lettore ritenga idoneo ) albi domanda: "Da quale loca
* a.*i
itone: ,
• Premere il tasti) “5" alta domtmda "Confermi?”,
• A tjuesio punto In routine è posizionala dalla locazione
20050 alla 20 12 fi e si può attuare con S KV 20050.
• Il programma dimostrativo 'Demo tnìerp Ai" . da curii un-
dopo a ter seguito te fiat precedenti, costituisce un esempio di
utilizzo.
100 REM DEMO
110 REM INTERP A$
120 A-20: B-40:C-60
130 AS-"PRINTA*B+CC-B/A5”
140 SVS20050 , A$
150 INPUT "DIGITA IL COMANDO**; A
S
160 5YS20050.AS
Cambia colore al carattere
(per C-64)
(20129/20186)
dì Federico Carretta
Questa breve routine consente di cambiare istantanea-
mente il colore di tutti i caratteri, che hanno lo stesso codice
video, presenti sullo schermo.
Dovreste sapere che digitando, ad esempio, PO-
KF. 1024,1 comparirà* nella cella video in alto a sinistra* il
carattere “A” maiuscolo. Al carattere "B" corrisponde il
codice 2, e così via.
La routine LM che* come tutte te altre* si attiva con la
SYS opportuna* richiede, per il suo corretto funzionamen-
to, ahn due accorgimenti Nella locazione 1 bXt necessario
digitare il codice del carattere video che si desidera ooinvol
gere; analogamente nella locazione 169 si digiterà il codice
del colore che si intende assegnare al carattere in oggetto,
1000 PRINTCHRSC 147) "QUESTA ROUTI
NE CAMBIA IL COLORE AL CARA
TTERE IL CUI “j
1010 PR INI "CODICE DI SCHERMO E 1
RIPORTATO NELLA LOCAZIONE 1
60 . " ;
1020 FRI NT "NELLA LOCAZIONE 169 D
Commodore Computer Ckit> - 67
L’UTILE
EUE ESSER PRESENTE IL CODIC
E DEL COLORE "$
1030 PR INI "DESI DERATO M
1035 RETURN
1050 DATA 169,7 , 133, 157 , IBS , 231 ,
133.166.160.0. 177.166
1060 DATA 197,1GB, 209 ,15,24,165,
166,133,170,165,167,105
1065 DATA EIE, 133, 171, 165 , 169 , 14
5,170,56,165,166,833,1
1070 DATA 133,156.165,167,533,0,
133, 157, 165, 167, E01 ,4
1060 DATA 540.3,54,144,811,165,1
66 . 501 . 0 . 508 , E47 , 96
1290 DATA -1,6553
Come utilizzare CAMBIA COLORE
• Caricar? lo digitare dalla rivista) il programma caricatore
dopo aver fissalo il Top di memoria ! mediante il programma
Top Memora 20000.
• Digitare la routine " Cambia Colore al Carattere’' pubblica-
ta in queste pagine (numerata da 1000 in poi).
■
• Registrare e verificare il programma cosi realizzato.
• Digitare RUS ed indicare il valore 20129 (o altro che il
lettore ritenga idoneo) alla domanda "Da quale locano
ne?".
m Premere II tasto "S" ' alla domanda ’ ' Confermi '’ ’ .
• 4 questo punto la routine è posizionata dalia locazione
20129 alla 20188 e si può attivare conS ES 20129.
• ti programma dimostrativo "Demo Cambia Colore al ca-
rattere". da caricare dopo aver seguirò k fui precedenti,
costituisce un esempio di utilizzo.
100 REA DEMO
110 REA CAMBIA COLORE AL CARATT
ERE
150 PRINTCHRSC 147) : POR 1-0 TD E
55: PDKE 1054+ 1 , I : NEXT
130 POR 1-1 IO 7 : PRINT : NEXT
140 INPUT "CODICE CARATTERE (0-
555 > " : X
150 INPUT’ "CODICE COLORE (0-555
)" ; Y
160 POKE 166, X: POKE 169,Y:SYS50
159
170 PRINTCHRS( 145)CHRS(145)CHRS
(145) -GOTO 140
Scroti Carattere (per C-64)
(20189/20245)
di FedrricQ Canetta
Questa routine, che sarà apprezzala soprattutto dai crea
tori di videogame» consente di spostare in basso di un rigo
tutti i caratteri presenti sul video che hanno to stesso codice
schermo. Prima di attivare la SYS t necessario trascrivere
nella locazione 168, mediante una semplice POKE, il codice
video desiderato.
1000 PRINTCHRSU47 3 “QUESTA RDUTI
NE EFFETTUA UNO SCROLLI NG U
ERSO IL BASSO DI"
1010 PRINT” TUTTI I CARATTERI AUE
NT I LO STESSO CODICE DI SCH
ERPICI **
1050 PRINT" IL CODICE DEL CARATTE
RE DA SCROLLARE"
1030 PRINT"D£WE ESSERE INSERITO
NELLA LOCAZIONE 166”
1040 RETURN
1050 DATA 169,7,133,167,169,191,
133,166,160,0,177,166
1060 DATA 197,168,506,15,160,0,1
69,35,145, 166,165,160
1070 DATA 160,40,145,166,56,165,
166,533,1,133,166,165
1080 DATA 167,833, 0,133, 167, 165,
167,501,4,540,3,54
1090 DATA 144,514,165,166,501,0,
508 , 547 , 96
1100 DATA -1,7769
Come utilizzare “Sentii Carattere’’
• Caricare (o digitare dalla ri cista) il programma caricatore
dopo aver fissalo il Top di memoria I mediante il programma
Top Memo ) a 20000.
• Digitare la routine " Serali Caremere" pubblicata in queste
pagine ( numerata da 1000 in poi ).
• Registrare e verificare il programma cosi realizzati.
• Digitare RVN ed indicare il calore 20189 lo altro che il
lettore ritenga idoneo) alla domanda : "Da quale locazio-
ne?".
• Premere il tasto "S" alla domanda "Confermi'" .
• A questo punto la routine è posizionata dalia locazione
20189 alla 20245 e si può attivare con $ YS 20189
• Il programma dimostrativo "Demo Scroi! Carattere", da
caricare dopo aver seguito le fissi precedenti, costituisce un
esempio di utilizzo.
82 - Commodore Computer Club
L’ UTILE
100 REn DEMO
110 REn SCRDLL CARATTERE
120 PRINTCHRSC147J : FQR 1-1 TD 7
: FOR J-l TD 10: PRINT‘'A" ; : NE
XTJ : PRINT : NEXTI
130 FOR 1-1 IO 13 : FOKE 168,1:SY
S20109: NEXT
Cancella Carattere (per C-64)
(20246/20302}
dì Federico Cunetta
Questa routine, dal funzionamento analogo a quelle prece-
denti, consente di cancellare istantaneamente tutu i caratte-
ri che, presenti sul video, hanno lo stesso cidice di schermo.
Prima di attivare la SYS t necessario trascrivere nella
locazione 168 il codice video desiderato.
1000 PR ENTCHRSC 147) "QUESTA RQUTI
NE CANCELLA DALLO SCHERMO I
CARATTERI “ ;
1010 PRINT” IL CUI CODICE CDI SC
KERN0) UA INSERITO, NELLA LO
GAZ IONE 168”
L020 RETURN
1030 DATA IBS, 7, 133, 167, IBS , 231 ,
133,166.160,0.177.166
1035 DATA 197, 168, E0B , 12 , 1B0, 0 , 1
69,32, 145, 166, 165. 16B
1045 DATA 234,234.234,234,56,165
, 166,233,1 . 133, 166,165
1050 DATA 167, £33,0, 133, 167, 155.
167,201,4.240.3.24
1060 DATA 144,214,165,166,201,0,
209,247,96
ir
1070 DATA -1,0234
Come utilizzare “Cancella Carattere**
• ( aricare (ó digitare dulia rivista} il programma caricatore
dopo aver fissato il Top di memoria ( mediante il programma
Top Memo} a 20000,
• Digitare la routine "Cancella Carattere ' ' pubblicata in que-
ste gine (numerata da 1000 in poi},
• Registrare e verificare il programma cosi realizzato^
• Digitare RUN ed indicare il valore 20246 lo altro che il
lettore ritenga idoneo) alla domanda: "Da quale locazio-
ne?".
• Premere il tasto (i S” alia domanda '"Confermi 9 ",
• A questo punto la routine è posizionata dalla locazione
20246 alla 2Q3Q2 e si può attivare con S ì'S 20246.
• // programma dimostrativo “ Demo Cancella Conmere",
da caricare dopo aver seguito le fasi precedenti, costituisce un
esempio di utilizzo.
100 REM DEMO
110 REM CANCELLA CARATTERE
120 PRINTCHRSC147) : FOR J-65 TO
60: FOR 1-1 TD 10; PRINTCHRSC
J) ; : NEXTI : PRINT : NEXTJ
130 PRINT; PRINT
140 INPUT "CARATTERE C1-5)";X
150 PDKE 168 , X : SYS20P46 : PR INTCH
RSC145) ; ; GOTO 140
Commodore Computer Club - & J
HARDWARE
VIC 20
Come ti sproteggo
il cartridge
Qualche goccia di stagno, un’espansione da
8K Ram e un po’ d’ingegno per diffondere
uno dei segreti di Pulcinella.
di Attrssiindm di- Simunt
Sappiamo benissimo a che cosa stale
pensando: dopo mesi c mesi di discorsi
paternalistici contro le persone cattive
che sproteggono il software delle perso-
ne buone, ecco che quelli di CCC sì ap-
prestano a descrivere in dettaglio una
tecnica di sprote/ione
Niente paura* amici! Anche noi. come
ogni malfattore che si rispetti, abbiamo
una scusa pronta per giustificarci, anzi
quattro:
• fi Vìe 20 e ormai uscito di proda zumi
e t di conseguenza . non danneggiamo
nessuno.
m I a tecnh a che de se riunì mo è valida so-
fo per chi possiede il drive e richiede i Mer-
ce rui hard iva re sai computer ipochi ftan-
no il coraggio di metterci te manti
■ La sprotezione descritta è un'ottima oc-
casione per descrivere una nuova tecnica
di proiezione per colora che fabbricano
cartucce.
• fri genere i ca rtridge p< r Vie 20 sono dei
l idcogux hi che rendono stupidi gli mi Uz-
za fori e, s proteggendo, scoraggiarmi Li
produzione di accessori nefandi per le
g io va n ì genera zi< > ni ( t • os t im pa ra no ) ,
F.d ora, dopo aver contrabbandato per
buoni, comportamenti che meriterebbe
ro la sedia elettrica, consentiteci di isti-
garvi a delinquere.
Un po’ di teoria
Il Vie 20, e qualsiasi altro computer
domestico, dispone di un’area di memo-
ria RAM e di una seconda area che, nor-
malmente, È “vuota*" ma che potrebbe
ospitare una cartuccia piena di altra
RAM (espansione di memoria) oppure
ROM (cartucce giochi, interfacce, dia-
volerie varie).
84 - Commodore Computer Club
HARDWARE
Nel caso specifico del Vie 20 le locazio-
ni destinate alia cartuccia sono quelle nu-
merate da 40960 a 49152.
Nonostante debba esser noto* ribadia’
mo il fatto che un computer non può
sapere se una memoria t RAM oppure
ROM oppure EPROM o altro.
Se. quindi, in quel banco di 8K inseria-
mo una cartuccia {prima di accendere il
Vie) tl nostro sistema non avrà più un
“vuoto" in quella particolare zona.
Dovreste anche sapere che i sistemi
Commodore sono strutturati in modo ta-
le che. al momento dell'accensione, se in
alcune particolari locazioni di memoria
sofie presenti determinati codici, il siste-
ma ^riconosce' ' la presenza di una car-
tuccia e viene attivata una routine in lin-
guaggio macchina che fa partire il
programma.
E’ ovvio che i costruttori di cartucce
conoscono benissimo questo particolare
e. in base ad esso strutturano le cartrid*
ge che producono.
Per chiarire quali sono i codici è bene
riferirsi alla seguente tabella che contie-
ne nella colonna di sinistra l'indirizzo e in
quella di destra il valore del loro
contenuto:
Indir,
Peek
40960
9
40961
160
40962
9
40963
160
40964
65
40965
48
40966
195
40967
194
40968
205
Di queste nove locazioni le ultime tre
rappresentano i caratteri maiuscoli “C T “
“B" “M" che, come è noto, sono le ini*
ziaìi dì Commodore Business Machines.
Le due precedenti sono un vero e pro-
prio codice (65 =a; 48=4)),
Quando i] Vie 20 viene acceso, il siste-
ma operativo, prima di effettuare altri
controlli, verifica se, nelle locazioni da
40964 a 40968, è presente il messaggio
In caso negativo contìnua pei
la sua strada fino alla visualizzazione del
ri
solito "Commodore,,, Basic V2,.. Bytes
Free...",
Se, invece, i cinque caratteri sono rico-
nosciuti, il computer deduce che è pre-
sente una cartuccia neirapposito allog
giumento c, invece di continuare le solite
operazioni, salta ad eseguire il program-
ma in L.M, la cui locazione iniziale è data
dai contenuti delle locazioni 40962 c
40963. Le prime due locazioni (40960 e
40%1) hanno il compito di ricordare al
computer il programma LM da attivare
in caso dì pressione di Run/Stop e
Restore.
Nel caso che abbiamo indicato in ta-
bella, una cartuccia che presentasse quei
particolari valori partirebbe anche con
SYS( 160*256 +9), E diciamo " partireb-
be" 1 perchè in effetti, non è possibile digi
tare SYS... dato che, non appena il com-
puter viene acceso* il programma si lan-
cia da solo c non consente, normalmen-
te. il “recupero" del Basic,
Abbiamo però detto che tutto ciò av-
viene solo se, al momento dell'accensio-
ne, jl computer individua il codice
"aQCBM”. Se, dunque, potessimo inse-
rire la cartuccia DOPO aver acceso il
calcolatore (a confronto, cioè, avvenuto
e fallito), potremmo leggere ed esamina-
re comodamente il programma tramile
Basic,
Come è noto, però, è pericoloso inse-
rire una cartuccia a computer acceso e,
anche riuscendoci, si generano malfun-
zionamenti di vario tipo
Il trucco
Il rimedio all'* 'incori veniente"* consi-
ste* semplicemente, nello sconnettere il
pin di alimentazione del connettore per
cartucce e collegarlo ad un interruttore
che troverà posto sul Tetro del Vie, Poi-
ché questa operazione chirurgica è bene
Sìa fatta solo da persone esperte, ci limi-
teremo adire che il pin dei 5 volt è ilN.21
del connettore: chi se ne intende non
avrà difficoltà ad interpretare quanto ab-
biamo detto; gli altri, che non hanno ca-
pito niente, è bene che non ci mettano le
mani. Dato che ci siete, inoltre, e stabili-
to che ormai il vostro Vie è manomesso,
aggiungete anche un comodo pulsante di
Reset incorporato; è il pin indicato con
U X“ ne IPap pendice del manuale di istru-
zione del computer.
Supponendo di aver realizzato le con-
nessioni descritte, come si può fare per
esaminare il contenuto di un cartrìdge?
m Spegnete il computer.
• Inserite la cartuccia che intendete
s protegge re.
• Posizionate t interruttore dei 5 volt in
modo "spento".
• Acce ridete il computer: compare il soli-
to messaggio relativo al Vie 20 senza
espansioni dì memoria.
• Accendete t ì me r rutto re dei 5 volt: non
dovrebbe succedere assolutamente nulla
(almeno ve lo auguriamo.,,)
• Pki questo momento potete leggere,
tramite Peek, i! contenuto degli 8K Ram
della cartuccia .
Se tutto è in ordine il programma do-
vrebbe partire con SYS64802. oppure
premendo il pulsante di Reset (se l’avete
inserito) e ancora, più semplicemente,
con Run/Stop e Restore. £' ovvio che
alcune cartucce potrebbero avere modi
di Lancio differenti,
Come registrarlo
Da quanto detto, però, il programma
su cartndgc può essere esaminato ma,
agli atti pratici, potrebbe non interessare
Commodore Computer Club - 65
HARDWARE
nessuno: la sprotezione* si sa, è bella se
consente copie illegali. Che ce ne faccia^
mo di un sistema che consente soltanto di
STUDIARE (orrore!) un programma?
Tutti sanno (!) che è possibile registra-
re una qualsiasi zona di memoria alteran-
do, opportunamente, i puntatori 43, 44
(inizio Basic) e 45, 46 (inizio variabili,
fine implicita del Basic). Lo faremo an-
che noi; digitate:
POKE43,0: POKE44J60;
POKE45,255: POKE46.192
Il Vie 20 risponderà: Ready, Digitate
allora:
$ÀVE'NOME*\8*I
A questo punto il vostro drive ronzerà
tenendovi col fiato sospeso per il tempo
necessario a registrare 8K Byte.
Sul vostro disco, alia fine, è presente
Hmmagine dei programma su cartuccia
assolutamente inservibile.,.
Ma perchè ci dite ciò?
Avete ietto benissimo: il file program-
ma registrato non potrà essere utilizzato.
A che cosa serve, allora?
Calma ragazzi, dateci il tempo dì spie-
gare qualcosa prima di menare le mani.
Il programma registrato, come, del re-
sto, quello sulla cartuccia "originale'*, è
un programma in L,M„ che, per funzio-
nare, ha bisogno di esser tisicamente pre-
sente proprio nel banco di memoria posi-
zionato da 40960 a 4915 T Poiché respon-
sione di memoria di SK Ram occupa le
locazioni da 8192 a 16383 il programma,
caricato in questa zona, non potrà mai
funzionare. Per farlo girare abbiamo bi-
sogno di un'espansione di memoria da
8K Ram che occupi le stesse locazioni del
programma copiato (40960 49151),
E 1 bene ricordare che le Ram sono
tutte eguali e che la zona di memoria che
occupano dipende da un pin che, colle-
gato ad uno dei quattro blocchi disponi-
si - Commodore Computer Club
bili, assegna automaticamente un banco
di memoria.
Ciò significa che un blocco di 8K dì
Ram che abbia il pin (non diciamo quale)
collegato col pin 10 della porta di espan-
sione, configurerà automaticamente il si-
stema come espanso ad 8K: quello col
pìn 10 è infatti il collegamento di una
comune espansione da 8K-
Ecco di seguito i pm della porta di
espansione, il numero di blocco e le loca-
zioni di memoria interessate.
La tabella dei pìn
Pin
Blk
Locazioni
10
1
8192 16383
11
2
16383 24575
12
3
24576 32767
13
5
40960 49151
Notiamo esplicitamente che il blocco 4
i da 32768 a 40959) t riservato al sistema e
non può essere occupato da nessun
“aggeggio";
I vari casi possibili
Se disponete di un’espansione di me-
moria di 8K originale Commodore, c la
aprite, noterete con gioia die, al suo in-
terno, sono presenti quattro micro inter-
ruttori (vedi foto) uno solo dei quali è
acceso mentre gli altri tre sono spenti.
Quello acceso è collegato, inutile dirlo,
al pin 10 che configura automaticamente
j] sistema espanso di 8K aH’accensiane.
Spegnendo tale interruttore, ed accen-
dendo UNO SOLO degli altri tre, sele-
zionerete, a seconda dei casi* uno dei
quattro blocchi possibili.
Pertanto, per caricare il programma
prima registrato su disco, dovete:
* Aprine la cartuccia da 8K Ram
Commodore .
* Accendere it primo ime minore e spe-
gnere tutti gli altri.
• Richiudere la cartuccia ed inserirla nel
Vie SPENTO
• Accendere l'interruttore dei 5 volt (da
voi installato prima).
• Accendere il computer e il drive.
• Digitare LOAiTNOMF\8J
• Al termine del caricamento digitare
5 YS 64802 oppure Runf Stop e Resto re
oppure premere il pulsante di Reset: il
gioco dovrebbe partire
Paradossalmente, tenendo conto del
costo maggiore, Tespansione da 16K
Ram della Commodore non possiede mi*
croimerruttori al suo interno, ma solo
saldature die presentano maggiori
problemi*
Cartucce Ram di altre marche, analo-
gamente, sono prive dei comodi interrut-
tori che, praticando una fessura sulla car-
tuccia, sono facilmente gestibili senza es-
ser costretti ad aprire e richiudere tutte le
volte la custodia stessa. In questi fran-
genti i casi sono due: o vi arrangiate a
dissaldare le piste inserendo interruttori,
o lasciate perdere il progetto.
Come proteggere
Abbiamo detto* airinìzio* che avrem-
mo suggerito un sistema per proteggere il
proprio sofware da copiature simili a
quella appena descritta.
Vediamo di riassumere brevemente
come aggirare Tautorun:
HARDWARE
• Non appena il computer viene acceso il
programma parte impedendo tentativi dì
salvataggio. %
• Non è però passibile stabilire se il pro-
gramma risiede su Rom (cartridge origi-
nale) oppure su Ram (cartridge sprotetto-
re \ e, in quest'ultimo caso ( Pautorun non
può funzionare.
La soluzione
IL problema sarebbe bell'e risolto se il
computer fosse così intelligente da sape-
re se il banco di memoria che ospita il
programma è di tipo Rom (originale ) op-
pure Ram (copia illecita).
11 computer, forse, non è cosi intelli-
gente, ma il program malore lo è di certo.
Partiamo dunque dal presupposto
che, benché il banco di memoria sia lun-
go 8K, non tutti i suoi byte siano indi-
spensabili al suo corretto funzionamen-
to, In altre parole; se il vostro computer
dispone di 3K non è indispensabile che
un programma sia lungo 3000 byte per
funzionare; può esser certamente più
breve e. in questo caso, alcuni byte non
saranno assolutamente utilizzati durante
il suo funzionamento.
Supponiamo, tornando al nostro caso,
che gh ultimi (o, addirittura, soltanto
Putrirne) byte non sia necessario per il
funzionamento del programma. AlPin-
temo di questo, furbescamente, il
softwarista inserirà un gruppo di istruzio-
ni (da tradurre opportunamente in LM),
che simbolicamente possiamo cosi
indicare:
À=49151
POKE A,0
IF PEEK(A) THEN CONTINUE
POKE A, 255
IF PEEKf A)< 255 THEN CONTINUE
RESET
Esaminiamole una per una:
« Viene azzerata la locazione 49151 if ul-
tima del banco).
• 5V, ad una successiva, immediata lettu-
ra della stessa locazione il valore è diverso
da zero l IF PEEK... ) allora vuol dire che
il precedente tentativo di scrittura (POKE
A . 0 ) è fallito . Se ne deduce che nella zona
di memoria e presente una Rom (è impos-
sibile, infatti, scrìvere su una Rom, ma
solo su una Ram). Questa f con molta
probabilità, è quella originale ed il pro-
gramma può quindi continuare.
• Se, invece, la lettura della locazione
49 15 1 è eguale a zero, potrebbe significa-
I* n *
re che al suo posto è presente una Ram ,
azzerata dalla precedente operazione di
Poke. Potrebbe, però , esserci al suo po-
sto una Rom con valore zero,
m Per esser sicuri che in 49151 non ci sia
un Rom nulla, cerchiamo di Pokarci 255.
m Se. nonostante PokelÀ),255 l d succes-
siva lettura fornace un valore diverso,
vuol dire che è presente una Rom ,
• In caso contrario, se siamo giunti fino
alla fine , vuol dire che siamo in presenza
di una Ram, ed il programma continua
con un Reset che può esser di natura piu
varia possibile: un loop chiuso, disabilita
zione permanente della tastiera, eccetera ,
Questo tipo di protezione t ormai co-
stantemente adottato dai produttori di
cartridge, specialmente per Commodore
M. I possessori di questo computer, in-
fatti, potrebbero sproteggero nel modo
più semplice possibile dato che il Cfà4 è
pieno zeppo di Ram, anche nella zona
normalmente occupata dal cartridge.
Se infatti tentate di sproteggere nel
modo descritto una cartuccia perCtftf, vi
accorgete che non è cosi semplice come
per il Vie 20,
E questo è anche uno dei motivi per
cui non abbiamo avuto molti scrupoli a
pubblicare il presente articolo,,.
Per i più bravi
Tra le lettere dei lettori che descrive-
ranno nel modo più semplice, chiaro e,
soprattutto, BREVE, il perchè dell'alte-
razione del puntatore 45 (posto a 255
invece che a zero) insieme al sistema per
trasferire su nastro una cartuccia, sele-
zioneremo, come a) solito, alcuni nomi-
nativi ai quali invieremo un appendiabiti
ed un accendisigari.
1 nominativi dì coloro che riceveranno
il chiodo ed il fiammifero saranno pub-
blicati per la gioia dei partecipami.
P.5., L’importante non è vincere, ma par-
tecipare.
Commodore Computer Club -87
OLTRE IL BASIC
C 64 - C 128
Alla (ri)scoperta
dell’lntemipt
Come costringere ii cervello del
computer ad eseguire di continuo una
nostra routine
di Michele Maggi
^turi
88 - Commodore Computer Clut
OLTRE IL BASIC
^Jonostame fargomemo sia stato già
trattato più volte su C.CC., Io affron-
tiamo nuovamente sia perché molti let-
tori,, che da poco seguono la rivista,
chiedono di parlarne sia perché una se-
rie di note suirìmerrupt sarà di certo utile
anche all’utente più smaliziato.
La teoria
Non tutti sanno (ma dovrebbero sa-
perlo) che anche quando il nostro com-
puter sembra non far nulla, come ad
esempio quando è stato appena acceso t
vediamo il cursore lampeggiare, in real-
tà esegue milioni di operazioni senza che
noi ce ne accorgiamo.
Ciò accade grazie alla notevole veloci-
tà di elaborazione del microprocessore
che, ogni sessantesimo di secondo, in-
terrompe il programma che sta ese-
guendo (posto che ne stia eseguendo
uno) fcd effettua una serie di controlli,
necessari al corretto funzionamento del
computer.
Tali controlli si riferiscono essenzial-
mente alla “scansione" della tastiera,
per verificare se è stato premuto un ta-
sto, al controllo del lampeggio del cur-
sore, all’esame di un eventuale “dialo-
go’* in corso Ira computer c periferiche.
airaggiornamento della variabile del
tempo “TP e altri ancora,
Come inserirsi neLTIntermpf
Da quanto detto sembra di non poter
far nulla per “fermare” o modificare la
routine di controllo (detta appunto di
interrupt) che, data la velocità con cui si
svolge, da Basic rende impossibile un
“inserimento” alTintemo della sua strut-
tura.
La richiesta di interrupt è infatti gene-
rata via hardware e, se ciò non bastasse,
la stessa routine è situata in una zona di
memoria a sola lettura (ROM),
Fortunatamente i progettisti del C64
hanno fatto in modo che Tindirizzo di
partenza di questa routine fosse situato
al fin temo di due locazioni RAM ì cui
indirizzi esadecimalì sonoS03I4e $0115,
Grazie proprio a quest'ultimo osser-
vazione, nulla impedisce di modificare il
contenuto delle due locazioni inserendo,
al loro posto, l'indirizzo di una routine
in LM da noi creala,
Agendo in lai modo, ogni volta che
verrà generato un interrupt (e cioè 60
volte al secondo) il controllo passerà al-
la routine il cui indirizzo è stato modifi-
cato. Il risultato sarà un'esecuzione pra-
ticamente “continua" della nostra rou-
tine.
Un accorgimento da non dimenticare
per nessun motivo è costituito dal fatto
che, al termine della routine, sarà indi-
spensabile comunque un salto alla ori-
ginaria routine di Interrupt (SEA3I).
Da quanto detto è agevole capire che
la manipolazione del vettore di interrupt
apre tantissime porte per ciò che riguar-
da effetti particolari che potranno ag-
giungere una nota di professionalità ai
vostri programmi.
Due esempi pratici
In queste pagine sono pubblicati due
esempi piuttosto banali, ma di sicuro
“effetto", che si basano sulla tecnica de-
scritta.
Lampeggio del bordo. Il bordo del vi-
deo lampcggerà di continuo.
Scritta indelebile. Sulla prima riga
dello schermo comparirà il messaggio
“Commodore 64" e, qualunque tasto
voi premiate (Shift e Clr/Home com-
preso), rimarrà sempre visibile.
Premendo i tasti ttun/Stop e Restare
si riportano i vettori alla normalità men-
tre, per far ripartire i programmi, biso-
gnerà digitare SYS 828.
I più abili, armati di pazienza, posso-
no disassemblare k routine proposte in
modo da impadronirsi delle tecniche de-
scritte, fra k più interessanti e stimolanti
:he é possibile realizzare.
10 REM ESEMPIO DI INTERRUPT
15 REM MESSAGGIO PERMANENTE
£0 FOR 1-080 TO 035: READ A:P0K
E I, A:X-X+A:NEXT
85 IF XOH1BB THEN FRINT^ERRQR
E DI DIGITAZIONE": END
30 SYSB80
35 DATA 180,159,73,141,00,3,1
69 ,3,141,21,3, 00 1 S6 , 162 , 40 s
185
40 DATA 07,3, 157 t 855 ,3, 805, 00
B , 847 » 76 f 49 1 834 , 38 , 38 , 38 , 38
,38
45 DATA 35 , 32 ,32,38, 32 , 38 , 32 .
32,3,15, 13,13, 15,4,15,10
50 DATA 5.32,32,54,52,32,32,3
2, 32,32,32,32.32,32,32, 32
55 DATA 32,32,32,32
10 REM ESEMPIO DI INTERRUPT
20 REM BORDO LAMPEGGI ANTE
30 REM PER C-64
40 POR I -82E3 TO 051 : READ A:POK
E I , A:X=X+A:NEXT
50 IF X< >2640 THEN PRINT"ERROR
E DI DIGITAZIONE” : END
80 SYS028
70 IF X< >2640 THEN PRINT”ERRQR
E DI DIG1TA2I0NE”tEND
B0 SYS82S
S0 DATA 120,163,73,141,20,3,16
9,3
32 DATA 141,21,3,86,96,162,0,1
42
34 DATA 32,208,232,208,250,76,
49 , 234
Commodore Computer Club - 89
L’ UTILE
Enciclopedia
di routine
di Maurizio Dett* Abate
12400 PrinlUsing
{Per qualsiasi Commodore)
Sebbene sia già stata pubblicata una routine che compie
le stesse funzioni (N.29 di C.C.C.) la riproponiamo, con la
stessa numerazione, in modo che il lettore possa scegliere
quella che ritiene più idonea,
“Prinr Using" vi permette di formattare un dato numeri-
co, incolonnando il punto decimale.
Per “formattare" si intende stabilire il numero di cifre a
sinistra e a destra del punto decimale da prendere in consi-
derazione, in modo da rendere più gradevole POutput su
video (e/o su carta).
Prima di chiamare la subroutine è necessario assegnare
alla variabile numerica XI il valore da formattare ed alla
sanabile alfanumerica Yl$ il formato.
Esempio di formato:
Yl$sr“* •****,**"
La quantità di asterischi (potete usare al -loro posto un
qualsiasi altro carattere) presenti prima e dopo il punto,
indica alla subroutine il numero delle cifre da considerare.
Al ritorno la variabile stringa XYS conterrà il valore oppor-
tunamente formattato e, se necessario* viene inserito un
certo numero di spazi bianchi, m modo da consentire l'alli-
neamento della virgola (punto decimale),
T seguenti esempi dovrebbero chiarire il funzionamento
della routine; il carattere apostrofo {') è da intendersi come
uno spazio bianco:
X 1=535.35367
Risultato:
XY$-"‘535.353"
XI =43437.65
Risultato:
XY$=“ 3437.65“
XI =89
Risultato:
XYS-‘‘"89'
Il Demo pubblicato insieme con la subroutine è molto
semplice e contiene una schermata di spiegazione.
100 REM ESEMPIO D’USO
110 REM USING
120 REM PER QUALSIASI COMMODORE
130 :
140 PR INTCHRSC 147 3
150 PR I MI “SULLA SINISTRA DEL UI
DEO APPARIRÀ 1 ”
160 PR I NT”UNA COLONNA DI NUMERI
CASUAL I , SULLA”
170 PR I NT"DE5TRA GLI STESSI NUM
ERI, STAMPATI ”
1B0 PR INI “PER MEZZO DELLA ROUTI
NE PROPOSTA f H
290 FRINII FORMATO: «**.«*).
200 FRI NT "GIUDICA TU QUALE OUTP
UT E ’ PIU 1 ”
210 PRINT^GRAOEUOLE* .. "
220 PR INI "PREMI UN TASTO PER IN
I Z I ARE "
230 GET A$:IF LENCASX0 THEN 23
0
240 PRINTCHRSC 147 3 : , **
m ri ; FQR 1*1 TG 20
250 XI* I NT CRND CI) *2000000 )/CRND
C 03*2000)
260 1F RNDC1X.2 THEN Xl-XÌ + 100
00*RNDC1)
265 IF RNDC1 X .3 THEN X1-INTCX1
)
2G7 1F RNDC1X.4 THEN X1-INTCX1
3 + * 21
270 PRINTX1; ;GDSUE 12400: PRINT
TAB C 25 3 ; XYS : NEXT
2Q0 :
LUTILE
9999
1 2400
12405
12410
12415
12420
12430
12435
12440
12450
12470
12475
12490
12491
12492
15493
12434
12499
END
Y9S-" X13> = RIGHT$i STRSCXll ,
LENI STR$ CX1 ) ) ~ 1 ) r X3-LENI! X1S
J : X4-LENC Yl*l
FDR Y7-1 TD X4-IF niD$(YiS,
Y7 ,1)<>”." THEN NEXT:X5-Y7;
GOTO 12415
X5-Y7: Y7-X4 : NEXT
FDR Y7-1 TO X3: IF MIDSCXlSi,
Y7,l )<>".* THEN NEXT:X6-Y7:
GOTO 12430
XE-Y7: Y7-X3:NEXT
IF X6<>X5 THEN 12440
XYS-niDSCXli. XB-XS+l , X5-11 :
GOTO 12470
IF X50XG THEN FQR Y4 = l TG
X5-X6 ; Y9S-Y9$+CHRSC321 : NEXT
XY4=Y9S+LEFTS(X1S . X6-11
JF Xl'INTCXl) THEN 12430
XY$=XYS+niDSCXlS, X5 . LENlYIS
J-X5+1)
RETURN
REN PRim DI GOSUB:
REM YlS : FORNITO
REN X ì : NIKI E RO DA TRATTARE
REH XYi : CONTERRÀ ’ IL R1SULT
PIO
REH NDNE: PRJNT U51NG
1 3300 Elaborazione di stringhe
l Per qualsiasi Commodore)
Questa routine implementa ben sei funzioni, ciascuna
delle quali ha il compito di facilitare e rendere più completo
tl trattamento delle siringhe. Il Basic Commodore* infatti, è
piuttosto scarno e le istruzioni dedicate alle stringhe sono
poche c non ne consentono una gestione soddtsfaceme e
completa.
Prima dì effettuare il GoSuh si deve assegnare alla varia-
bile V X un valore compreso tra uno e sei che ha it compito di
indicare la funzione richiesta.
Elenchiamo te funzioni a disposizione:
Inserimento: YX = 1
Permette di inserire in una siringa principale (X 15) una
sotto stringa {SS$) + a partire da una determinata posizione
(XI).
La variabile XXS conterrà il multato dcM’elaborazione.
Esempio:
Xl$=*-jfì HO UN COMMODORE COMPUTER "
SSl^DRIVH È UN +1
xt=v
Risultato:
XX$= 4 IO HO UN DRIVI E UN COMMODORE
COMPUTER"
Come avrete sicuramente munto, la variabile XI deve
contenere la posizione del carattere della stringa master
dopo il quale si vuole che venga inserita la substrmga.
Sov rapposi rione: VX =2
Questa funzione è analoga alla precedente, ma la sotto-
stringa SS$, invece di essere inserita, si sovrappone alla
siringa pricipale X15 a partire dalla posizione indicala da
Xl 11 risultato de IV e la Ih* razione sarà, come prima, conte-
mito in XXL
Se nell'esempio deila precedente funzione non si tosse
operato un inserimento, ma una sovrapposizione, il risulta-
*
io sarebbe stato:
XXS— “IO HO UN DRIVE F, UNCOMPU’IHRT
(senza lo spazio tra “UN" e “COMPUTER !
Piace: YX =3
Permette di conoscere h posizione del primo carattere di
una sottostringa tSSS> a 11‘i n temo di una siringa master
(XIS).
Al "ritorno'' la variabile numerica XI conterrà la posizio-
ne cercata,
Esempio:
X1S -"ESEMPIO DELLA FUNZIONE PLACE"
sss«"unz"
Risultato:
X 1 “ Ih
Se la subslrìnga non è presente nella stringa master, al
ritorno dalla subroutine Xtft conterrà ERR -
Se invece tutto fila liscio, e questo vale anche per le altre
funzioni* Xl)t conterrà M OK
Duplicate: VX =4
Questa funzione sene a duplicare la siringa X 1 S per un
ninnerò X i di volte. Il risultalo sarà contenuto \n X.XS
Esempio:
X1S— “CHIP *'
XI =4
Risultalo:
\ X s = CH 1 P CI II P CH I P CH IP"
Esempio:
XlS-"HELLO"
XI =.ì5li
Cbrtimo(fOr& Computet Club 91
L’ UTILE
Risultato:
XflS=*‘ERR"
1. errore segnalato in quest ultimo caso è dovuto al fatto
che la stringa avrebbe più di 255 caratteri e ciò, come è noto,
non è lecito.
Si ottiene un errore (XOS-'ERR") anche se XI è minore
di due, pei i motivi che ben à facile immaginare.
Centratura: YX=5
Questa funzione visualizza X 1S (centrata in orizzontale)
sulla riga in cui si trova il cursore al momento della
chiamata.
X 1$ non deve possedere più di 4() caratteri, pena la con-
sueta segnalazione d'errore (Xll$=“ERR").
Print Al: YX=6
Questa funzione gira solo sul Commodore 64. poiché si
serve della routine "Plot" del Remai, il Sistema Operativo.
Se volete saperne di più. leggete gli articoli sui Kcmal che
C.C.C. ha pubblicato in passato,
[ primi quattro caratteri di Xl$ {che NON saranno stam-
pati) devono contenere le coordinate della cella in cui si
vuole che venga stampato il primo carattere delia stringa.
Gli esempi chiariranno ogni dubbio.
Volendo stampare la parola "DRIVE" sulla nona riga a
partire dalla colonna 16. si dovrà effettuare:
XIS=“1609DR1VF"
Le colonne sì indicano con un numero da 00 (zero zero) a
39. le righe con un valore da 00 (zero zero) a 24 (lo schermo
é composto infatti da 25 lince, ciascuna delle quali possiede
40 caratteri).
N.B. il programma non effettua controlli sulle coordinale
(per motivi di spazio): valori eccessivi provocheranno mal-
funzionamenti del sistema, dai quali si esce fortunatamente
per mezzo di Run/Stop & Restore,
Il programma dimostrativo è molto semplice e non neces-
sita di spiegazioni.
100 REM ESEIIFia D ’ USD
110 REM ELABORAZIONE 01 STRINGH
E
1B0 REM PER QUALSIASI COnfIDOORE
130 REM CLA FUNZIONE 6 FUNZIONA
SOLO
140 RED SUL C-S4)
1S0 :
1G0 INPUT "FUN2I0NE YX C1/63":Y
X
170 INPUT “STRINGA X1$";X1$
1 80 INPUT “STRINGA SS5" : SS*
130 INPUT “MALORE XI"; XI
£00 GOSUB 13300
210 PRINT , 'FUN, = ”YX; PRINT "X0S-*’X
0$: PRINT , ’XÌS=*”XÌ*
220 PRINT"X1 = *‘X1 :PRINT”XX$“"XXS
; GOTO 1G0
300 :
3939 END
13300 X0$-”OK'’ : NX-LENCX1S3 : QN YXG
OTD 13310,13320.13330,13350
, 13360 , 13370
13310 XXS-LEFTSC XI* . XI 3 +SSS+RI GHT
StXIS. NX-X1 3 : RETURN: REM IN
SERI MENTO
13320 XX$-LEFTS(X1*. XI 3 +SSS+R I GHT
SCX1S, NX-X1 -LENC SS* 3 3 : RETUR
N : REM SOURAPF.
13330 FOR 5J-1 TO NX;IF MIOSCXIS,
S J , LEN C SSS 5)<> 55$ THEN NEXT
:X0$-"ERR“; RETURN
13340 X1-5J:SJ-NX; NEXT: RETURN; REM
PLACE
13350 IF NX*X1> 255 OR XKE THEN X
0$-”ERR” : RETURN
133SS XX$«“" :FOR XS-2 TD X1:XX$-X
XS+X1S: NEXT: RETURN: REM DUP
LICA STRINGHE
13360 IF NX> 40 THEN X0$- "ERR" : RET
URN
13365 PRINT TABC20-NX/23 ; XI* : RETU
RN
13370 IF LENCXl* )<5 THEN X0S-"ERR
RETURN
13372 POKE 7B3,PEEK(7Q3> AND 254;
POKE 7B1 .UALCMIDSCX1S , 3, 23 )
133B0 POKE 7B2 , QALC LEFTSCX1S , 23 3:
SYS65520: PR INTRIGHI* CX 1* . NX
-43 : RETURN: REM AT
13390 REM UAR. DA DEFIN . PRIMA DI
□□SUB
13332 REM XI*. XI , SS*. YX CUEDI ART
I COLO 3
13339 REM ELABORAZIONE DI STRINGH
E
1 3400 Linee in bassa risoluzione
(Sol» per C/64)
Con questa routine è jwssibile tracciare ‘‘linee" sullo
schermo in bassa risoluzione, ovvero in modo testo.
92 - Commodore Computer Club
L’ UTILE
Il risultato è senza pretese, ma può esser considerato
come valido strumento per capire come si gestiscono le linee
(anche in alta risoluzione).
Prima di effettuare il GoSub £ necessario assegnare un
valore alle seguenti variabili:
XI/Y1: contengono rispettivamente 9 ascissa (range 0-39) e
l'ordinata {0-24) di uno degli estremi della linea
X2/Y2: contengono rispettivamente l'ascissa e l'ordinata
dell'altro estremo della linea,
X4: contiene il codice schermo dei caratteri ( PokeCode) che
formeranno la linea,
X6: contiene il colore dei caratteri che compongono la linea
( secondo fa solita tabella fi- 15 }.
La linea, è superfluo dirlo, cancella tutto ciò che 'trova'
sul suo percorso c viene tracciala in un tempo più che
accettabile
La submarine effettua un controllo ^ui valori delle coor-
dinale: se non rispettano l'intervallo lecito* la linea non
viene tracciata e la routine ritorna assegnando alla variabile
X0$ il solito l *ERR'\ In caso contrario conterrà 'OK
Volendo piotiate volo un punto c non tracciare un intera
linea. £ sufficiente dare ai due estremi k stesse coordinate
{X1=X2. Y1^Y2).
Il Demo pubblicato offre quattro opzioni: un ventaglio,
dieci linee casuali, un'ellisse c una sinusoide. Queste ultime
sono un esempio di plottaggio di singoli punii.
100 REM ESEMPIO 0 1 USD
110 REM LINEE IN BASSA RISDLUZI
ONE
1E0 REM PER C/64
130 :
140 POKE 532B1,7:FQKE S3E80 , 7 : P
OKE 646,6
150 PRINTCHRffit 1473
160 PRIMI TABC‘11 J : "SCLEGL I”
170 PRIMI ; PRINT”! ELLISSE! "
180 FRINIRE UENTAGLIO”
130 P R L N I ” 3 DIECI LINEE CASUALI
ii
500 PRINT“4 SINUSOIDE "
510 FRI NT’" 5 RITORNO AL BASIC”
530 GET A$:1F A$<‘ , 1” OR A$> ”5“*
THEN 530
540 PRI NTCHRSC 147 ) : ON UALCAS1G0
IO 550,560,310,350,390
550 X4-01 : X6=1S»RN0C1 J : FOR 1=0
IO 3S0 STEP 3
560 Xl-SINC I*tr/1B0) *18+50 : Y1-C0
SC I*ir/180 J*10 + 15: X5-X1 : YS-Y
1: GOSUB 13400: NEXT
565 POKE 19B,0:UAIT 139,1: GOTO
150
500 X4-45: X6-6: X5-13: Y5-54: FOR
1-0 IO 39 STEP 4: X1=I : Yl-0:
6DSUB 13400: NEXT
590 POKE 130,0; WAIT 130,1: GOTO
150
310 X4-H6: XB-5: FOR 1=1 T0 10: XI
-40*RNOCI): X5=40*RNLK I>
350 Yl=55*KND(.l): YB-B5+HNDC 1 ) : G
□SUB 13400: NEXT: POKE 198,0:
UJA1T 198 , 1 : GDTO 150
350 X4=45:X6=0: FOR 1=0 T0 39: XI
-1 : Y1-5INC 1*50/ 100 )*15+15
355 XB-X1 : Y5-Y1 : GOSUB- 13400 :N£X
T
360 POKE 198 . 0 : UA I T 198.1: GOTO
150
330 SYS5048
400 :
3999 END
13400 X0S-”OK”:1F X1<0 OR X5<0 OR
XI >33 OR X5> 33 THEN
RR"; RETURN
13410 IF Y1<0 OR Y5<0 OR Yl>54 OR
Y5>54 THEN X0$= "ERR " : RE1UR
N
13450 YX — CX1-XB1/40: YY~- C Y 1 -YB ) /
40
13455 Ytì-INTC 10B4+X 1 + I NT C Y 1 )*40 )
13430 Y9-INTC 1054+X5+INTCY5 j^401
13435 1F YB> Y9 THEN 13470
13437 GOTO 13457
13440 POKE YB , X4 : POKE 54575+YB,X6
13455 X1“X1+YX: Y1=Y1+YY
13457 YB“INTC10S4+X1+INT(Y1 )*40>
13458 IF YB> =Y9 THEN POKE Y8,X4:P
OKE 5457E+YB, X6: RETURN
13465 GOTO 13440
13470 X7-X1 :X1"X5; X5-X7:X7*Y1 ^1 =
Y5: Y5-X7: GOTO 10050
13431 REH XI , Y1 . .COORDINATE E5TRE
no 1
13435 REO X5.YB. .COOROINATE ESTRE
no 5
13493 REM X4 CODICE SCHERHO C
ARATT ,
13494 REH X6 COLORE DELLA LIN
EA
13495 REH X1-X5 0 . . . 39 ** Yl-YB 0
. . .54
13433 REH LINE... IN BASSA RISOLO
2 IONE
Commodore Computer Club - 93
L’UTILE
Come realizzare renciclopedia e utilizzarla nei propri listati .
A i tenori che hanno acquistalo per la prima volta questo numero di (ommcKlorc Computer Club, illustriamo qui di seguito, in
breve, i vantaggi derivanti dalla raccolta proposta. Questa, a pensarci bene, è la versione Superiore" della rubrica 1 RIHA e
potrebbe anche denominarsi. ., "Una schermata '!
Oltre che utili per costituire un ‘enciclopedia, i brevissimi sottoprogrammi pubblicati su ogpvi numero, sono anche validissimi
strumenti di studio per coloro che desiderano approfondire le proprie conoscenze del Basic, esaminando, scoia fatica, particolari
routine o insolite tecniche di programmazione.
# Dato che può esser “chiamala'’ più di una volta nel corso di un programma, nessuna routine contiene istruzioni dd tipo DATA
oppure DIM . allo scopo di non creare confusione col listato principale.
• Nessuna routine può far riferimento ad altre routine dell enciclopedia.
# Nessuna routine può contenere variabili "banali" (A, AS, eccctcrakma solo variabili poco usate (Xl$„ X8, Yt)%. eccetera).
* Ogni routine deve apparire, per intero, sullo schermo del computer e consentire, proprio per questo motivo, di essere esaminata
comodamente
• Ogni routine deve esser numerata secondo uno standard che ha la particolarità di esser ricordalo facilmente:
Ridile
XXYOO Prima riga del soUoprogr&mma
XXY89 Ultima riga utile de! sotloprogramma
XXY90 REM Prima riga di spiegazioni
XXY99 REM Nome della subroutine
in cui XX sono due valori variabili da IO a 63; Y £ un carattere numerico compreso tra <le 9
Qualsiasi subroutine, in altre parole, inizia con un numero, di cinque caratteri, che termina semprt con "00". La stessa subrouime,
d’altra parte, ha Fultima riga numerata con "99“. Digitando, ad esempio: LIS I 10800-10899
si avrà la certezza di veder apparire sullo schermo, per Intero, la routine il cui nome si trova nella riga 10899
Puma di accedere alla routine, fe necessario assegnare, alle variabili indicate con REM da riga XXYH9 a XX Y98, particola n valori
per il suo corretto funziona me rito A] "ritorno" una o più variabili conterranno il risultato ddLeiabof azione.
In questo modo, per esser piu chiari, è possibile simulare alcuni comandi di versioni Basic avanzate oppure, addirittura, creare
nuove e inedite istruzioni Ad esempio, il comando, SOUND 1.800*500
che, nel C iò. riproduce un suono di tonalità 800 tramite la voce l per la durata 501), potrebbe venir riprodotta, in un ipotetica
subrettine per il Commodore 64. con: Xl = l:X2=800:X3“S00:GOSUB 12400
nel l’ipotesi, ovviamente, che la routine in oggetto sia allocata da riga 12400 a 12499
1 listati pubblicati "girano" su ogni computer, salvo dove indicato diversamente
E‘ ovvio che nel caso del Vic-2(). (che, come à noto, ha uno schermo di soli 5ftò caratteri)* le subrouiinc 'universali funzionano
correttamente, ma non possono apparire per intero ip una sola schermata.
Per quanto riguarda h digitazione, si tenga presente che sulla rivista* per motivi di chiarezza, i comandi e le istruzioni Basic sono
separaci era broda spazi bianchi Nel digitare te linee di programma, periamo, t opportuno ignorarli altrimenti si rischia di non restare
in una sola schermata Se, per esempio, leggete:
12 tOp X 1 = 34: X2 = SOR(X3) + LOGfXI)
digitate nel modo seguente
l2KlflXl=34:X2«5QR(X3)4-LOCfXD
senza . cioè . alcun carattere ds separazione tra comandi cd istruzioni
Contenuto
Collaborazione dei lettori
La collaborazione dea lettori ò gradita, purché si prov-
veda a inviare almeno tre sottoprogrammi per volta* su
nastro, disco oppure output di stampante I listati di
routine che non rispettano lo standard adottato non
potranno esser presi in co nsidc razione
Tutti i lavori pubblicali verranno compensati con pro-
dotti della Systems Editoriale (cassette di programmi,
libri, abbonamenti* copie arretrate* eccetera!.
94 - Commodore Computer Club
L’UTILE
13500 Comandi fuori programma
I Solo per
Questa routine esegue le istruzioni Basic conte mite nella
variabile alfanumerica X1S, che nati deve essere vuota nè
contenere più di 39 caratteri (pena X0S = **ERR"J
Assegnando, per esempio, ad Xl$ le istruzioni "PO-
KE532HL1 :CLR” ed effettuando il CoSub, lo schermo sari
colorato in bianco e le variabili verranno annullate.
11 sol io program ma possiede anche un controllo dì errore:
i comandi sono insensati, la routine imerrompc il prò-
gramma c rende noto Terrore che si è verificalo.
La routine non contamina zone di schermo nò sposta il
cursore. Funziona in un modo piuttosto insolito: viene crea-
to uno pseudo schermo a partire da 4M 152 in modo da non
influenzare lo schermo principale. Lo pseudo-schermo non
viene visualizzato ma, per il sistema operativo, d quello,.,
ufficiale 11 resto è affidato alla ormai famosa tecnica del
buffer di tastiera (C.C.C. ne ha parlato più di una volta, ,. ).
Per non spostare il cursore si sono usate particolari routine
del KERNAL, il sistema operativo del 064,
Non £ quindi possibile far eseguire comandi che implichi-
no un qualsiasi Output sul video* come PRINI\ INPUT,
LIST cd altri.
Sj possono tranquillamente utilizzare, al contrario* gli
altri comandi come, ad esempio, LF.T. POKL e tutte le
funzioni,
lì programma dimostrativo chiede una qualsiasi espres-
sione numerica, proponendone una. Dopo aver premuto il
tasto Return* il programma pone davanti ai V espressione i
due caratteri ' A — “ e chiama la submutine. Al ritorno,
come è evidente. "A" conterrà il risultalo, che verrà subito
visualizzato.
La seconda parte del Demo chiede un qualsiasi comando,
come ad esempio l *POKE532Kl,l " (digitate le virgolette
prima e dopo perché all’ interno, è presente una virgola,
altrimenti viene segnalato F.xtra Ignored). Se non vi sono
errori il comando sarà eseguito; in caso contrario viene
comunicato quale errore si è verificato (provate a sbagliare
di proposito... ).
100 REtl ESEMPIO D’USCJ
110 REM PER COMANDI FUORI PRQGR
AMMfì
120 REM SENZA INFLUENZA SULLO S
CHERMO
130 REM SOLO PER C/64
1 50 :
160 PR I NTCHRS C 147 ) ; I ABC 10) ; ” IN
TC20+SQRC6000+400)+3te/CPI J
170 PRINTCHRSC 19) INPUT “ESPRE
SS . " ; XlS
180 XlS* "A* ” + X 1 $ : G05UB 13500
210 PRINT : PRI NT "RISULTATO: " ; A
220 PRINT : PRINT”PREMI UN TASTO”
230 POKE 198,0:UAIT 19B,1:P0KE
198,0
240 X1S-” ” : PRINTCHRSC 147) ; : INPU
T "COMANDO CES,: P0KE532B1 ,
1 ) *’ ; XlS
250 GOSUB 13500: PRINTX0S
2B0 IF X0S-*'ERR” THEN PRINT: PK 1
NT "TROPPE O NESSUNA LETTERA
I ” : END
270 :
9999 END
13500 Y5-49232 : X0$“’’OK" : IF LENCX1
$)<1 OR LENCX1$)>33 THEN X0
S’* ,, ERR" : RETURN
13505 POKE 703 , PEEKC7B3) OR 1 : SYS
E5520 : POKE 830, PEEKC701 ) : PO
KE 831 , PEEKC 792)
13510 POKE 648, 192: PRINTCHRSC 147)
; XlS
13515 PR INT ”C3 DOUN3GOTO13530” : RE
M ATTENZIONE A RIMUNERARE
13530
13520 POKE 631, 19: POKE 632,13:P0K
E 633,13
13525 POKE 634,13: POKE 13B,4:END
13530 PDKE 640,4: IF PEEKCY5)<>63
THEN 13580
13535 PRINTCHRSC 147) ; "QUESTE ISTR
UZIQNI NON SONO CORRETTE:”
13540 PRINT: PRINTX1S
13545 PRINT: PR I NT "PRDU0CAN0 INFAT
TI IL. SEGUENTE CRUSD ERRORE
CRUQFFD : ” : PRINT
13550 FOR Y7-0 TO 39: POKE 12S4+Y7
, PEEKC Y5+Y7) :NEXT: POKE 198.
0: X0$-"ERR" : END
13580 POKE 783, PEEKC7B3) AND 254:
POKE 701 . PEEKCB30) : POKE 782
, PEEKCB31 ) : 5YS65520
13590 POKE 198.0: RETURN
13591 REM LA UAR I AB 1 LE XlS DEUE C
□N-
13532 REM TENERE I COMANDI DA E5E
GUISE .
13599 REM NOME: COMANDI FUORI PRO
GRAMMA
Commodore Compu rei Club - 35
L’UTILE
13600 OR esclusivo
(Solo per C/64)
lì Basic V2 del Cto4 non offre la possibilità di effettuare
questa operazione logica, disponibile soltanto rn
Asse mbler*
Questo sotto programma è infatti una brevissima routine
in linguaggio macchina: permette di calcolare l'OR esclusi*
vo tra due operandi i cui valori possono variare tra zero e
65535,
Si assegnano ad XI e X2 i due operandi: si otterrà il
risultato nella variabile n umerica X Y : valori di X 1 oppure di
X2 che non rispettano l'intervallo stabilito daranno luogo al
consueto messaggio di errore (X0S=“ERR ’).
E' d'obbiigo però dare una descrizione dt questo operato-
re logico binario; la “tabella della verità"' è la seguente:
Input
Output
“B”
Q
0
0
l
1
0
t
0
1
0
!
1
Si noti che il risultato è unitario solo quando i due bit in
Input sorto opposti tra loro.
Questa operazione logica binaria t molto utile soprattut-
to per cambiare di stalo uno o più bit.
Per commutare il terzo bit di un byte, ad esempio, è
sufficiente compiere un EOR (Or Esclusivo) fra il byte in
questione e una “maschera'' che ha solo il bit 3 settato
(eguale, cioè, ad 1),
1) programma dimostrativo commuta in continuazione il
bit 7 di una cella video ottenendo il lampeggio del carattere
che si trova in quella locazione,
Il bit 7 del codice Pokc di ciascun carattere indica infatti se
il carattere stesso deve essere visualizzato in positivo oppure
in re verse (bit 7 settato — re verse, bit 7 nullo = positivo)
100 REM ESEMPIO D'USO
110 REM OR ESCLUSI UO CEDR)
1£0 REM PER C/64
130 :
140 PRINTCKRSC 147 j TABC S) "LETTE
RA LAMPEGGI ANTE"
1S0 POKE 10E4,8
160 FDR G-X TD E00:NEXT
170 XI“PEEKC10E43 : XE-1E8: GQSUB
13600
180 POKE 10E4 , X Y ; GOTO 1G0
180 :
3939 END
13600 Y1-679:REM START L . M , RILOC
ABILE
13605 X0$“ *QK "
13610 IF X1<0 OR XI > 65535 OR XE<0
OR XE> 65535 THEN X0$-"ERR"
: RETURN
13690 POKE Yl.IBSrPOKE Y1+E,73:P0
KE Yl + 4 1 133: POKE Y1+5 ,E51:P
GKE Y 1 +6 t 1 68
13695 POKE Y 1 +8 , 73 : POKE Yl+10, 133
: POKE Yl+11, E5E: PQKE Yl+12,
86
13630 YE-INTCX1/E56); Y3“Xl-E56*Ya
1363S Y4-INTCXE/E563 : Y5-XE-556*Y4
13640 POKE Yl+1 , Y3: POKE Yl+3 t Y5:P
□KE Y ì *7 . YE : POKE Y1+3 1 Y4:SY
SY1 ; REM ATTENZIONE
13650 XY-PEEK CEBI )+PEEKC2S2) *856
13680 RETURN
13680 REM PRIMA DI EFFETTUARE IL
GOBUB
13681 REM LE UARIABILI XI ED XE □
E UGNO
13689 REM CONTENERE GLI OPERANDI
13633 REM UEERA 1 EFFETTUATA L'DPE
RAZIONE
13584 REM DI OR ESCLUSI UD (XY1,
13635 REM (0,03-0 (0,13(1,03-1 CI
( 11-0
13538 REM NOME: OR ESCLUSI UD
13700 Bit irnage su Mps 803/801
(Per qualsiasi Commodore)
Consente di disegnare in alta risoluzione sulle stampami
MPS H03 ed MPS Hill le quali, lo ri badiamo, sono completa-
mene sofl -compatì bili.
Si assegna alla matrice X1S(X) l'immagine che si vuole
mandare in stampa, X può variare ira zero e sei poiché la
testina è formata da sette aghi,
I punti “accesi", ma à meglio dire che saranno stampati,
devono essere rappresentati da un asterisco (*)- I punti
spenti, invece, possono essere rappresentati da un qualsiasi
altro carattere.
96 - Commodore Computer Club
L’UTILE
[ e sette varìbili con indice devono avere tutte la medesi-
ma lunghezza, comunque non devono contenere piu di 1(1
caratteri, pena ii solito messaggio di errore tXOS = "KRR">.
Prima di effettuare il (ìoSuh si deve però assegnare alla
variabile numerica X2 uno dei seguenti valori:
X 2 =< > : dopo la stampa in alta risoluzione, ss ritorna in modo
normale e viene effettuato un camage Return
\2 = 1: come prima, ma senza carnage Return
\2 >1: non si ritorna al modo normale, nè si effettua un
ritorno di carrello, consentendo la stampa di più caratteri
programmati allineati.
L'Output ed il listato stesso del programma dimostrativi
dovrebbero spazzare vin ogni dubbio: vengono stampati
una greca (assegnando ad X2 un valore superiore ad uno, in
questo caso tre) ed il Logo della Commodore (X2 = l),
F' consigliabile, per comprendere meglio il funzionamen-
to del sol (opro gromma, consultare il manuale della
sta Riparile,
100 REM ESÈMPIO D 1 U50
110 REM HIRE5 SU STAMPANTI CO fin
ODORE:
180 REM riPSB03/e01(E COMPATIBIL
I 3
130 REM PER QUALSIASI COMMODORE
140 :
150 PR I NTCHRSC 147 ) : PR I NI “ATTE NO
ERE £0”
1 SS :
160 X1SC0)-"**** **
170 XI SC 1 J-" .* . "
1B0 X135C B 3 “ ”»*«•
130 XI SC 33 " “ ***
800 X1SC43“ M ***
£10 Xl$(5)~“ 11
EE0 X1$CS)“ *“
E 30 X8"3 : POR 1-0 IO E0:GOSUB 13
700 : PR I NTCHRS 1 19 3 I : NEXT
840 OPEN 4,4: POR 1*1 TO 5: PRIMI
#4 , CHR$t 153 ; NEXT: CLDSE 4
E41 :
848 REM ****** LOBO COMMODORE
* + * ♦ m m
E43 :
850 X1SC03 "” * *** * ' 1 ”
E80 X1$U >-“* ******"
E70 X1SCB3-”** 1 1 *
800 XlSC3>^ ,f **
£30 Xl$C4)-“** * 1 ‘ M
300 X1SC53- 1 ' ■**♦***»
310 X1SC6)-” 1 ’ 1 ' "
3E0 XE“ 1 : GOSUB 13700 -OPEN 4,4: P
R I NT#4 * 11 LOGO COMMODORE " : CL
OSE 4
900 :
3399 END
13700 X0$- ‘‘OK " : FOR X3-Q TO 6
13705 X1-LENCX1SC03 3 : IF LENCXISCX
9)30X1 OR Xl>10 THEN X0S-”
ERR ”: RETURN
13710 NEXT
13715 POR X9~ 1 TO XI : XKX93-0: POR
XB-0 TO B
13780 IF fi I D$ C X 1 S C XB 3 , X9 , 13 — ”*" T
HEN XI CX93-X1 CX93+8TX8
13785 NEXT : XI CX93-X1 (X93 OR 18B:N
EXT
13735 OPEN 4 , 4: PRINT#4, CHRSC63 : : F
□ R X3-1 TD XI : PRINTfH , CHRSC
XHX93 3 : : NEXI
13736 IF X8-0 THEN PR I NT#4 t CHRS ( 1
5 3 : GOTO 13740
13737 IF X0~1 THEN PR I NTfc4 t CHRS C 1
5 3 : : GOTO 13740:REM CALTRI U
ALDRI LASCIANO INUAR.3
13740 CLOSE 4: RETURN
13730 REM UARIABI LI :
137S1 REM X 1$ r, X 3 » IMMAGINE DA SI
AMPARE
13758 REM X DA 0 (ZERO) A B (7 RI
GHE3
13794 REM X8*0 RIT- CARR , E MODO
NORM .
13795 REM X8-1 MODO NORM, SENZA R
ETURN
1 3796 REM X8 <> 0 ED 1 ÌNUAR1
AIO
13737 REM CUEDI ARTICOLO SU C.C.C
. 3
13739 REM HIRES SU MPSB03/B01
1 3800 Messaggi in ertended
Background Color Mode
IPer C/M)
Il circuito integrato video del C7M detto anche:
V1C il) 0 mollo sofisticato e offre molteplici possibilità di
visualizzazione. Quasi sempre però, a calivi del [imitalo
Basic residente, privo di istruzioni specifiche per questo
circuito, i nostri programmi si limitano al modo testo.
Commodore Computer Cìub - 97
L’ UTILE
Ecco alcune possibilità del circuito VIC li:
• modo testo semplice;
• modo testo multtcolor.
• m odo te sto ex t . backgrou nd ;
• caratteri definibili dall'utente:
• alta risoluzione bit map;
• bit map multicoìor;
• gestione imerrupt;
bassa e alta risoluzione nello stesso istante (raster
resìster):
• gestione di ottosprite dalle infinite possibilità (collisioni,
movimenti ed altro};
• spnte multicolori
• scrollmg “fine'*;
• gestione di ben 16 spritc. par se ricorrendo a qualche
artificio
Il lutto è relativamente complesso da programmare: sono
inatti necessarie laboriosissime operazioni di Poke che aiu-
tano. è vero* a conoscere meglio la macchina* ma certo non
facilitano la vita al programmatore. Non parliamo poi della
grafica hit-map, che necessita del linguaggio macchina per
una gestione sufficientemente veloce.
La subroutine pubblicala serve a stampare messaggi sul
video* i cui caratteri abbiano un colore di sfondo diverso
dallo sfondo dello schermo { ex tende d background colnr
mode oppure, più semplicemente. EBCM l. Tale tecnica si
rivela molto utile nei programmi interattivi, quando è ne-
cessario richiamare ('attenzione dell'utente per riferire un
messaggio di particolare importanza.
11 sottoprogram ma non è comunque un mezzo sufficiente
per utilizzare appieno LEBCM, ma è senz'altro un valido
strumento didattico.
Prima di effettuare il GoSub, come di consueto, alcune
variabili devono contenere determinali valori che condmo
neranno tl funzionamento della routine* e prettamente:
\t%: è la stringa che sarà stampata sul video usando
1EBCM;
X5-Y5: contengono le coordinate { rispetti vomente X e V . la
pnma da II c 39* la seconda da li a 241 che determinano la
posizione sul video in cut inizierà la stampa delia stringa Da
Piotare che quando si chiama la subroutine lo schermo viene
pulito con CHR5U47);
Y1-Y2: contengono rispettivamente il colore dello schermo
(loc. 53281) e il colore del bordo (loc, 53280);
Y3: è il colore dei punti accesi, ovvero tier caratteri che
compongono il messaggio (tabella 0-15);
Y4: contiene il colore dello sfondo dei caratterr,
XY; rappresenta il tempo (in secondi) durante il quale il
messaggio resta sul video con i'EBCM attivato Una volta
scaduto il Tempo, il cursore, lo schermo e il bordo n prende
ranno i colori che avevano al momento della chiamata
Viene anche cancellato il video e restituito il controllo al
programma principale.
N.B.i valori spropositali nelle variabili sopra deserte te pro-
vocheranno. nei lìmiti del possibile* il messaggio di errori:
<Xb$=“ERR"),
Il programma di esempio dell'uso visualizza la parola
"ATTENDI'" al centro dello schermo in EBCM. In seguito
chiede tutti ì parametri necessari per visualizzare un secon-
do messaggio e l'eventuale presenza di un errore viene
comunicata. Ricordate che NON è possibile, in EBCM*
visualizzare caratteri il cui Poke Code (codice schermo) sia
maggiore di 63 (otterrete altri caratteri senza senso).
Perchè?
Spiegazione di fantasia:
None giusto che si usufruisca di un 'interessante particola-
ri tà e non se ne venga in qualche modo penalizzati.
Spiegazione logico - informatico - razionale: *
L’argomento è relativamente complesso ma, come al soli-
to, la spiegazione la troverete su qualche fascicolo di C.C.C
110 REM MESSAGGI IN EXTENDED
150 REM BACKGROUND COLOR MODE
130 REM SOLO PER C/G4
140 :
1S0 PR I NTCHRSC 147 )
160 PRINT" TRA POCO COMPARI RA >
UN MESSAGGIO, * . "
170 FDR 1-0 IO 1000:NEXT
1B0 X5-14: Y5-12: Yl-1: Y2-3: Y3-2:
Y4-15:X1$~” ATTENDI ";XY-5:
GDSUB 1 3800
190 FRI NT "ORA IMMETTI TU I UALD
RI -..* 1
500 INPUT M X COORDINATA" ; X5
210 INPUT "Y COORDINATA" ; Y5
220 INPUT "COLORE DI SFONDO* 1 ; VI
230 INPUT "COLORE DEL BORDO" ;Y2
240 INPUT "COLORE DEI PUNTI ACG
ESI"; Y3
250 INPUT "COLORE DEI PUNTI SPE
NT I " ; Y4
260 INPUT "MESSAGGIO" ; Xl$
270 INPUT "TEMPO DI PERMANENZA"
; XY
2B0 GOSUB 13B00
290 PRINTCHRSC 147 } ; X0$
300 ;
9SSS END
13B00 X7-255: YB-532S0: X0S-"DK" : IK
XS< 0 OR X5> 33 OR LENCXlfi»
2S4 THEN X0S-"ERR" : RETURN
13805 IF Y5<0 OR YS>24 THEN X0S-"
ERR" : RETURN
1 38 10 IF XY< 0 THEN X0$- "ERR ” : RETU
RN
90 - Commodore Computer Club
L’ UTILE
13915 1F V 1 < 0 OR Y5<0 UH y 3< 0 OR
Y4<0 OR Y1>X7 OR Y9>X7 OR Y
3>X7 OR Y4>X7 THEN XY--1:Q0
IO 13910
13995 PRINTCHRSt 147) : PQKE 951. REE
K ( YB+ 1 3 : PQKE 959 , PEEK C Y9 ) : P
QKE 953, PEEKC646)
13030 PQKE 53955, PEEKC53965) OR 6
4
13640 POKE 793, PEEKt 793) AND 054:
POKE 791, Y5: POKE 799. X5: SYS
65590: X1S-CHRSC 19) +X1S
13950 POKE YB+ 1 , Y i : POKE YB,Y9:P0K
E 646 , Y3 : POKE YB+3 . Y4 : PR I NT
X1$:Y9-XY*950
13955 POR YB-0 TQ Y9: NEXT: POKE Y9
+1 , PEEKC951 3 : POKE YS , PEEKt 9
593: POKE B4B , PEEKC9533
13950 POKE 53965, PEEKCS39G5) AND
191 : PRINTCHRSt 147) : RETURN
13090 REM X5-Y5 COORTI/STAMPA Xl£<
-HESS. 3
13891 REM Y 1 “SFONDO Y9- BORDO
13BS9 REM Y3-SCRITTE Y4- SF . SO
RITTE
13894 REM XY-SECONDI CIRCA DI PER
MANENZA
13999 NOME: MESSAGGI IN EXT. BACK
GROUND
13900 Save & Load pagina video su/da
disco
Una routine di uso estremamente semplice che, serven-
dosi di fjles sequenziali, salva e carica scherniate su floppy
disk. Vengono salvali l oppure caricali):
• i caratteri ( LOCHI byte),
• il calore dei caratteri i altri II Hit) byte \
• il colore dello schermo ( l byte).
• il colore del bordo j 1 byte).
Eventuali errori che si siano verificati durante le opera-
zioni dì caneamemo^sal viaggio (drive noi ready, disk lidi,
file exisiscd altri) vengono im medi a fame me resi nini.
Prima di CoSub si deve porre in XlS il nome del file'
schermo che si desidera salvare (caricare) che non deve
essere più lungo di sedici caratteri; nel caso questa variabile
stringa sia vuota, il file viene aulomalicamcnle chiamato
"Schermala”.
Alla chiamata della routine. X 1 deve contenere"! (uno)
se si desidera caricare una schermata, un qualsiasi altri ■
valore ne provocherà il salvataggio
E K bene ricordare che ciascun file 'schermo occupa sem-
pre otto blocchi.
11® REM UIDED SU DISCO
140 POKE 539B1 , 1 : POKE 53980, 1 : P
OKE 646, 14: PRINTCHRSt 147)
150 FOR 1-1 TD 9: PRI NT "DEMO
NEXT
160 PRINT: PRINT: PRINTCHRSt 144 3 ”
□RA QUESTA SCHERMATA 0IM0ST
RATI UÀ”
170 PRINT: PRINT" UIENE SALDATA
SU DISCO CNOME: HELLO)"
100 PRINTCHRSC31) "ATTENDI "
130 FOR 1-1704 TO 1903: POKE 1,9
5S*RND( 1 3 : POKE 54979+1, 16*R
NOC 1 3 : NEXT
900 X1“0: XlS- "HELLO": Gt)SUB 1390
0 : POKE 53900,0: POKE 53991,0
910 SYS65409: PRINTCHRSt 14?) “ORA
UIENE CARICATA ...”: Xl-1 : XI
$- "HELLO” : GOSUB 13900
9999 END
13900 IF LENCX1S3-0 THEN X1S-”SCH
ERMATA"
13905 OPEN 8,9. 15, "10": QN X160T0
13950
13910 OPEN 9 , 0 , E , X 1 $+ ” , S , li) " : GOSUB
1 3SBS
13995 PR I NT#9 , CHRSC PEEK C 53981 3 3 ; :
PR I NT#3 , CHRSt PEEKt 53980 3 3 ;
13930 FOR Y5-10E4 TO 5093 : PRINTK9
.CHRSCPEEKt Y51 3 : : GOSUF 1399
5
13935 PR1NT#9, CHRSfPEEKC Y5+54E79)
3 ; ; NEXT : CLOSE 9:CL0SE 0 : RET
URN
13950 OPEN 9 ,e.£,XlS + '‘.S.R-' :G0SUB
13905: GEI #9 , X9S . X3S : I F LE
NCXES3-0 THEN X9S-'*0"
13956 POKE 53981 , ASCCX9S) : IF LENC
XlS 3 “0 THEN X3$-”0"
13960 POKE 53990 , ASCCX3S) : FOR Y5-
1094 TO 9093: GET tt9.X9S.X35
: I F LENCX9S3-0 THEN X9$-’*0"
1 3969 IF LENCX3S3-0 THEN X3S-”0“
1 3955 POKE Y5, ASCtXSS) : POKE Y5+54
979 . ASCCX3S3 : NEXT : CLOSE 9:C
LOSE B: RETURN
13995 INPUT #8 , X3 , X4S ; IF X4$-"0K”
THEN RETURN
13909 SYS65409: PRINTX3: X4S: END
13991 REM X1S-NQME. Xl-1: LOAD; XI
-0 : SAUE
13999 REM NOME :Ul GEO DA/5U DISCO
Commodore Computer Club - 99
PERIFERICHE
QUALSIASI COMMODORE
Stampare o non stampare?
Visualizzare, forse...
A che cosa può servire ia stampante? Quali
sono le principali caratteristiche delia Mps
803 e delle sue compatibili?
di Maurizio tMl' Abate
er avere un'idea chiara sulla Mps HtB
è bene conoscere, almeno a grandi linee,
la storia delle stampanti Commodore de-
gli ultimi anni.
La prima (o quasi) stampante a livello
hobbistico presentata sul mercato fu la
1525, ai tempi del Vie 2(ì, Poco dopo
nacque il Commodore f>4. destinato ad
essere, negli anni successivi, il leader dei
personal della sua fascia.
Tutto il software per questo computer
(Easy Script, Print Shop, Word Pro III,
Sirnons 1 Basic, Koala Printer, 120 colon-
ne, eccetera } fu sviluppato in modo da
funzionare correttamente con la 1525 e
con la successiva stampante Commodo-
re, siglata Mps 801, Questa presentava,
rispetto alla precedente, lievi migliora-
menti tecnici, poiché era stata progettata
tenendo corno dell'esigenza di conserva-
re la compatibilità con tutto il software
già sviluppato.
Le prestazioni della Mps 801 non era-
no. però, eccellenti, tanto che si semi il
bisogno dì progettare una stampante mi-
gliore. più robusta, con buona qualità di
scrittura c velocità di stampa adeguata.
Nacque così la Mps TO, destinata,
purtroppo, a scomparire precocemente
dal mercato a causa della completa in-
compatibilità con buona parte del
software disponibile al momento del
"lancio": qualcuno, in casa Commodo-
re, dimenticò, forse, che l'utente non
compra una periferica che non può
usare.,,
Ed ecco infine la recente (o quasi)
comparsa della Mps 803, stampante che
offre migliori prestazioni c un funziona-
mento ineccepibile con la massima parte
del software esistente, grazie al modo di
funzionare che, dai punto di vista softwa-
re. è identico alla Mps H41 1 .
100 - Commodore Computer Club
PERIFERICHE
La stampante per il neofita
Per aiutare quanti non hanno mai sentilo
parlare ili stampanti, è di 'obbligo chiarire
i prìncipi di funzionamento dì questa pe-
riferica ed elencarne i possibili usi.
La stampante è un mezzo per trasferi-
re su carta (e produrre, cioè, documenti
durevoli e trasportabili) i dati elaborati
dal computer cui viene connessa: posso
no essere listati di programmi, elaborati
di word processor, archivi, output di pro-
grammi gestionali, grafici e disegni di va-
no ijpo.
L'immagine è prodotta da una testina
formata da un certo numero di aghi inco-
lonnati (sette, nel caso della Mps 803)
che. trascinata da un motore, stampa i
caratteri sulla carta. Si nota facilmente,
infatti, che ogni carattere o disegno è
formato da più righe verticali, formate,
ciascuna, da piccoli puntini posti Timo
sull'altro (dot).
l a qualità di stampa, cotti è intuibile,
à tanto più alta quanto maggiore £ il
numero degli aghi presemi nella testina.
Nel nostro caso... un attimo di
pazienza!!
Le principali caratteristiche
La M ps 803 £ caratterizzala da dimen-
sioni relativamente ridotte (un 33x19x7 :
peso: 2 kg circa ) e da un aspetto gradevo-
le. E' disponibile in tre colori: nero (per
C/16 e Plus/4), caffè latte {per C/64 e Vie
20) e, recentemente, anche in bianco,
per affiancarla al nuovo Commodore
08. La differenza, beninteso, si limita
soltanto al colore c nulla vieta, a un pos-
sessore di C/64, di comprarla nera, se la
desidera!
11 trascinamento della carta è del tipo a
frizione, come quello dì una normale
macchina per scrivere; accetta di conse-
guenza sia il foglio singolo che il modulo
continuo. Per ottenere, tuttavia, una
maggior precisione con il modulo conti-
nuo, è disponibile sul mercato un apposi-
to accessorio {opzionale), il cosiddetto
"'trattore' - dal prezzo contenuto, intorno
alle 30 mila lire.
La velocità di stampa t accettabile (60
CPS, Characters Per Second) ed è del
tipo "bidirezionale ottimizzato’ 1 : ciò si-
gnifica che la testina stampa sia quando
va da sinistro a destra, che quando ritor-
na (a differenza della Mps 801), Il listato
di un programma di lunghezza pari a 5
kbytes viene stampato in circa tre minuti,
tempo più che accettabile.
Il carattere è composto da una matrice
dì 7 (altezza delia tesi ina) per 6 dot, co
me quella della Mps 801. La testina ha
però dimensioni diverse che contribui-
scono a conferire al carattere una forma
più gradevole e meglio leggibile. La qua-
lità di stampa diminuisce notevolmente
in modo minuscolo, a causa della man-
canza di ' discendenti", caratteristici del-
le letture come la ”p'\ la "g'\ la "y", ed
altre. In questi casi, infatti, il carattere
viene "sollevato ’L ma il risultato è co-
munque accettabile.
E 1 bene notare che la 81.13 è in grado di.
stampare tutti i caratteri .semi-grafici
Commodore, vale a dire i “ geroglifici*'
scrigrafati sul frontale dei tasti
Altre caratteristiche tecniche
B 1 possibile, con la Mps 803, disegnare in
alta risoluzione (bit image mode), unen-
do a) testo grafici o tabelle di genere
diverso. La stampante può cosi, emulan-
do il plotter, trasformarsi in uno stru-
mento dalle infinite possibilità, pur aven-
do applicazioni hobbystiehe: tutto sta nel
possedere il software adeguato.
Con la Mps 803 si hanno a disposizione
solamente ire modi di stampa; normale,
re verse ed "dongato 1 * (doppia larghez-
za); non È possìbile il modo Near Letter
Oualiiy (NLO), il corsivo o il grassetto
ma, in compenso, utilizzare la 803 t
estremamente semplice e può portare a
risultati più che soddisfacenti in ogni
caso.
Il numero massimo di caratteri per ri-
go è fissato in 80. valore ideale per la
maggior parte delle applicazioni.
Esistono tuttavia appositi programmi
capaci di stampare fino 120 caratteri per
rigo (e scusate se è poco.
L'interlìnea può essere impostata via
software oppure via hardware, tramite il
primo dei due deviatori posti sul retro
della macchina. Il secondo deviatore
presente serve ad impostare il numero di
device che può assumere valore quattro
<> cinque.
Oltre alFinterruttore dì alimentazione,
posto sulla fiancata destra, è presente un
unico pulsante sul frontale: è il solito
il paper ad varice 1 *, che serve per fare
avanzare la carta senza girare manual-
mente il rullo, La pressione di questo
tasto durante l'accensione provoca il
self— test della macchina.
La spia led rossa, quando è accesa,
segnala lo stato di ON della stamparne;
quando lampeggia, invece, vuole segna-
lare che si è verificato un errore, come
l’assenza di carta; un cicalino non avreb-
be tuttavia guasta lo.,.
La Commodore assicura una durata
della testina pari ad un minimo di venti
milioni di caratteri; sarà vero' 7
QUES T ft E f UHfl STAMPO IH ftLTfì RiSOLUZIOHE
Commodore Computer Club ■ Wi
PERIFERICHE
Le ^compatibiir’
J n seguilo al successo della Commodo-
re. e de 3 C/64 in particolare, molte fab-
briche di stampanti si sono buttate a ca-
pofitto nel produrre modelli collegabili
ai computer Commodore, Tu effetti qual-
siasi stampante si può collega re grazie a
particolari interfacce (RS-232. !EE-
488) . Purtroppo, però, sono totalmente
incompatibili col software presente sul
mercato.
Nascono, cosi, k stampami 803-
compatibili. C on questo termine si deve
intendere la completa compatibilità con
la stampante ' ufficiale’' della Commo-
dore. Una stampante commercializzata
con la sigla v ‘ 803 -competi bile" deve esse-
re m grado di sostituire completamente
r originate.
Su questa stessa rivista sono state pre-
sentate, in precedenza, diversi modelli
realmente compatibili con la stampante
in questione.
Il nastro inchiostrato
La stampante ha bisogno, ovviamen-
te, di inchiostro; questo impregna un na-
stro come mito all 'interno di una cartuc-
cia, detta enrtridge. di dimensioni ridotte
che si inserisce agevolmente nell ‘apposi-
to alloggiamento sollevando il coperchio
della stampante, fi nastro è disponibile
soltanto nei colore nero.
La sua durala, purtroppo, non è ecces-
siva {[' eufemismo è d obbligo}: appena
acquistalo, infatti, la stampa è ben mar-
cata e di buona qualità. Successi vamento
si assesta sul grigio, rendendo necessario
il ricambio della cartuccia, il prezzo della
cartuccia è relativamente ridotto (si può
trovare anche a 10,000 lire). Gualche
problema presenta la reperibilità, nono-
stante la Mps 803 sia tuttora la sola stam-
pante Commodore n livello hobbystìco
presente sul mercato.
Docu men fazione
fi manuale fornito insieme con la mac-
china è sintetico ma esauriente e comple-
to. Consta di 56 pagine solo in lìngua
inglese. Sarebbe belio se tutte le macchi-
ne Commodore fossero sempre accom-
pagnate da documentazione completa,
chiara, esauriente e, soprattutto, in
italiano.
Tiriamo le somme
Spariamo subito H prezzo: lire 490,000
IVA esclusa, è la cifra presente sul listino
ufficiale Commodore, Tuttavia abbiamo
avuto occasione di vedere in qualche ve-
trina La Mps 803 (trattore e f .V.A, com-
presi} intorno alle 400.000 lire.
Un prezzo senza dubbio contenuto in
rapporto alle prestazioni delia macchina
che, unita ad un drive e ad un buon word
processor, consente (perchè no?) appli-
cazioni semi — professionali, La stam-
pante, lo ricordiamo, è anche un mezzo
prezioso per stampare grafici o listati di
programma.
La Mps 803 e le sue compatibili si col-
legano direttamente al C/64, C/128, C /
16, Plus/4, Vie 20 attraverso il connetto-
re seriale. Non è necessaria alcuna inter-
faccia dato che è sufficiente il cavetto
fornito nella confezione.
Per ulteriori informazioni:
Commodore Italiana
Via FJli Gracchi, 48
20092 C irrise! lo Balsamo IMI)
Tel: 02/61-83,22,45
I CARATTERI DELLA MPS 803
PICA MAIUSCOLO - ABCDEFGHI JKLMN0PQRSTUVI4XVZ
f i c a. m i nusco 1 o - a.bc de f 9 h i 5 K 1 mnoF Tr s t uuuix y z
OH G Fì T O M 13 I l_l 3C OLO
3 L- r i
u
^ 1 o r^i
RE VERSE
rn j. ri lj s* c: c> 1 «d
-=*. tzi .d -s- E ^
PUH TEGA I ATURA E VAR I - ! " ' C > +-£ 15 * TC 3 ■ ; ? , , O 1 234567830
PIU TUTTI I CARATTERI GRAFICI
T 02 - Commodore Computer Club
PRO LOGIC REVOLUTION
è il n. 1 dei velocizzatori !
superiore sia al Prologic-Dos che allo Speed-Dos
• Loatl sino a 35 volte più velo-
ce.
• Save sino a 20 volte più velo-
ce.
• File Seq + Rei sino a 10 volte
più veloce in I.oad/Savc.
• Visualizzazione indici di ini-
zio e fine der programma du-
rante il Load.
• Ram-Test accorciato
(N. 0, i sec.)
• Formattazione veloce in
35/40 tracce per 664/741
Blocks Free.
• Funzioni Old/ Renane - Save
con Replace corretto.
• Scratch e Validate 50-60 volle
più veloce.
Il PROLOGIC REVOLUTION
è distribuito in Italia dalla V.C.S. HARD & SOFT
Per prenotazioni lei. 06/7485079 ROMA
F sciusi vista per la zona Lombardia: NIWA SI IFTWARE lei. 02/2440776 Via Torino, 80 Sesto San Giovanni (Mi)
PROLOGIC REVOLUTION T 1QQ (VÌA Forti sconti per quantità.
Art. 0225 M*Jm IJrJr *UUv (IVA inclusa) Forniture per grossisti, negozi e club.
La V.C.S. (lislnbuisvr am be > seguenti prodotti:
Art,
0100
Super FaM Load (con Reseli
1 . 39,000
Art,
0170
Alimentatore 1 64 VI C 20
L.
38 000
«
0125
« 79.000
44
0135
Vi/a Star (Cartndge f disco + manuale )
L<
55.000
«i
0115
ISEPIC
-4 69.000
14
0190
Basetia per 2 Eprom con Svoich -reset
1*
19.01)
«i
0130
Programmalo^ di Eprom
« 179.000
<4
0195
Base ita per 4 sistemi operativi (comm. reset)
<c
29,000
■H
0130
Espansione Rom 256 k
« 109,000
4M
0200
Scheda 5 sistemi operatisi (comm, interno)
41
45.000
«
0145
AiignaiticnL +■ Turbo lapt
« 29.(100
«
0205
Scheda 3 sistemi operativi CI 28
44
39.000
44
0105
Fasi-Disk +
« 39.000
t<
0210
Scheda 4 sistemi operativi per floppy o stamp.
«
3y.ooo
«
0110
Turbo Tool Kn
44 53*000
44
0185
Mietali 300 Baud - Autodial - Autoan&wer
«
179.000
«
0155
Analizza : ore e riconosolorc dì inEepriEi
*4 234.000
44
0175
Caned latori di Eprom
41
115.000
«
0160
Mollici BohfJ {Swileh Elciir )
44 1 19.000
41
0180
Penna ottica
41
39.000
4t
0165
Tti plà user pori
« *9.000
41
02 1 5
Ventola raffreddamento IMI
41
39,000
«
0140
Duplicatore cassette
« 15.000
41
0220
Dischi 5S.DD (confez, da 100)
Hi
d. 1900
DUPLICAZIONI CASSETTE CONTO TERZI
Super Reset con Fili Memo-
ry.
Edit dello schermo.
Lavora con cassette in turbo-
tape.
Duplica un intero disco in cir-
ca 20 sec. tramite banali co-
piatori.
12 tasti funzione program-
mati con opzione di ripro-
grammazione a piacere.
interfaccia Centronics incor-
porata.
Compatibilità 100% con il
software dello Speed-Dos.
BUONO DI ORDINAZIONE
VOGLIATE INVIARMI IN CONTRASSEGNO
NOME ■ COGNOME
NOI RIZZO
CAP Citi A
N
PROVINO. A
N Ari. I
N Ari
L
N Ari
L
SPESE SPEDIZIONE
l 5 eoo
PAGHERÒ AL POETINO
L
V.C.S. HARD & SOFT VIA FESTO PORZIO. 5-00174 ROMA - TEL. 06/7485079
PERIFERICHE
QUALSIASI COMPUTER
Come disegnare
con il plotter 1520
Un brevissimo listato , suscettibile di notevoli
sofisticazioni, per utilizzare senza problemi
la piccola periferica della Commodore.
di Michele Maggi
1 1 plotter 1520 è una periferica piuttosto
diffusa ma» per uso amatoriale od hobbi-
stico» non trova una ben precisa applica-
zione a causa delle sue (imitazioni*
Il terreno più fertile per un suo utilizzo
rimane quello dei diagrammi e dei grafici
c non certo quello della stampa di listati
oppure di testi a causa della notevole
lentezza*
Grazie al suo basso costo* tuttavia,
molti utenti lo hanno acquistato ma, per i
motivi anzidciti o non lo usano affatto
oppure non ne sfruttano a fondo le carat
teristiche.
M programma che segue è rivolto pro-
prio a colorii i qualt, delusi delle modeste
capacità della periferica, non sanno che
nella realtà può rivelarsi molto utile in
più occasioni.
II programma
Si tratta di un programma che consen-
te di disegnare con il Plotter agendo sui
tasti cursore del computer.
Vengono offerte le opzioni di setezio
nc del colore e di spostamento da un
punto all'altro del foglio con il pennino
sollevato oppure abbassato.
E" un programma sicuramente utile
per coloro che hanno necessità di dise-
gnare grafici senza tanti problemi e non
intendono litigare con il manuale di istru-
zioni.
Il programma si basa sull’ utilizzo degli
indirizzi secondari del Ploiter, Onesti,
come noto, rappresentano i diversi co-
mandi che è possibile inviare al 152(1.
Gli indirizzi secondari sono i seguenti:
Zero (0L E‘ il valore di default, ovvero
quello che automaticamente viene asse-
gnato non appena si accende l'apparee
diro. Con tale impostazione il plotter tra-
scrive su carta i caratteri alfanumerici
cosi come provengono dal computer.
Per esempio, il comando OPEN 0,0
"apre" il canale di comunicazione per il
plotter, Aggiungendo l'istruzione
PRINT±* 4, “Commodore Computer
Club 11 il messaggio verrà trascritto su car-
ta, Il numero zero» valore di default » può
venire omesso.
L'indirizzo +, 1" permette al Plotter di
disegnare con linee e punti e di controlla-
re il movimento della penna.
L ‘indirizzo "2“ seleziona la penna im-
primendo lino scatto al revolver porta-
penne.
L'indirizzo “3" seleziona le dimensio-
ni del carattere,
Gli indirizzi 4. 5 e 6 non vengono ana-
lizzati* dato che non sono usati nel pro-
gramma pubblicato.
L'indirizzo 7 mettali Plotter simulan-
do lo spegnimento e la riaccensìone della
periferica Per esempio, le due istruzioni
OPEN 7*6 t 7:PRJNT# 7 faranno dise
gnare al Plotter i quattro quadratini che
vengono disegnati al momento dell'ac-
censione* riporteranno tutti i valori (re-
lativi al colore della pernia, alla grandez-
za del carattere, eccetera) ai valori stan-
dard.
Come funziona
il programma
Una volta dato il RUN il Plotter viene
resettato e» subito dopo» vengono richie-
sti il modo e il colore in cui si desidera
operare.
Ciò significa che dovrete premere il
tasto "M" (muovi) oppure “D"
(disegna).
Nel primo caso (M ) sarà possibile spo-
stare il pennino (tenendolo sollevato) in
corrispondenza di un punto qualsiasi del-
la carta.
Nel secondo (D), invece» il pennino»
messo in contatto con te carta, si sposterà
in una delle quattro direzioni.
In entrambi i casi il movimento verrà
impresso attraverso te pressione dei tasti
del cursore in modo identico a quello in
cui viene spostato il cursore dello scher-
mo.
Effettuata in modo analogo la scelta
del colore (premendo uno dei tasti ,+ N'\
,h B’\ “V" oppure “R"), si deve premere
il tasto "E” (Exit) che permetterà, final-
mente, di spostare te penna utilizzando i
tasti cursore
In qualsiasi momento sarà possibile
cambiare le opzioni premendo il tasto
deHasterisco (*).
Se durante ( esecuzione del disegno si
preme il tasto Return, la penna tornerà
all'estremità sinistra dell'asse orizzonta-
le.
Su noli che te velocità di spostamento
è limitata ad un puntino per volta. Se*
però, premete >E tasto più ( +). ì segmenti
tracciati avranno una lunghezza dieci
704 - Commodore Computer Club
PERIFERICHE
volle maggiore. Per tornare al tratto mi-
nore. è ufficiente premere il tasto meno
(— h
Struttura
dei programma
La linea I7ij apre il canale relativo al
pini (aggio ni termiti i di coordinate X* 'i
e ti calia le relativo ai colon delle penne
La linea 2(10 resetta il Plotter
La linea 210 manda alla subroutine 350
che fissa il modo (disegno oppure plot*
t aggio) e i colori.
Le linee 220-300 si occupano di stabili-
re i movimenti da effettuare oppure le
linee da tracciare e, se viene premuto il
tasto di asterisco C) consentono il ritor-
no al menu
Le linee 330 e jUn disegnano e sposta-
no la penna.
Analisi
dei comandi possibili
In questo programma vengono utiliz-
zati solo due dei sei comandi di plot (ag-
gio che abbiamo a disposizione.
Questi sono: "M’\ che muove il penni-
no alle coordinate specificate, e “D" che
disegna
Gli altri comandi, non usati nel listato
dì queste pagine, sono:
l 'H" che muove verso il punto di origine
assoluto.
‘T* che stabilisce un punto di origine
relativo alia posizione attuale,
+ 'R" che muove verso le coordinare *‘X '
e l Y ' che si riferiscono, però, al puniodi
origine relativo fissato da l T\
*J" che sposta la penna in modo identico
a “R'\ ma col pennino abbassato sulla
carta,
m
Pensate
di esser bravi?
Con sigi istmo ni nostri lettori di realizzare,
sulla fiil.sitrijtii dì quello che compare in
queste pagine, un programma piu
versatile.
infatti possibile aggiungere comandi
in grado di tracciare circonferenze, ret-
tangoli, ellissi nei pimi piu disparati del
foglio.
Non si dimentichi, inoltre, la possibilità
di trascrivere messaggi oppure, per chi e
veramente bravo, disegni memorizzati
precedentemente su disco o nastro.
Se ri tene! e di aver realizzato un pro-
gramma interessante, telefonate in Reda-
zione (02/8467348) in modo da concorda-
re la pubblicazione dei vostro lavoro.
tee
150
130
1*0
150
160
REM CQrtE DISEGNARE COL POTI
ER 1550
RE n E QUALSIASI COMPUTER CD
MHODORE
t
REM
BY MICHELE MAGGI
US-CHRtf 16) QSCHRSC147T i
-CHR5C 191
X®“CHR*t 14 7’/ "5CEGLERE
■QPZI 0 NE* + CHR*t 146 >+‘'
TI
170
160
1 50
,500
Ì5 -0
5?0
530
540
550
560
570
leu»
590
300
310
350
330
3*0
1350
360
370
3B0
390
*00
1 4 1 ®
450
IF
IF
IF
1 F
IF
4 30
1440
460
460
4 70
OPEN 1,6,1; OPEN 5,6,5
ns-us+" muoui h : 0i-u*+"0isE
GNA 1 ': N*-Uf *"NER0
B*-W*+ M BLU ,l :U*“Wl + ,, UERDE"
; R5-WS+ "ROSSO" :
□PEN 7,6 l 7:PRINT#?:CL0SE 7
FRIMTX*:G05UB 35®
GEI AS:IF AS- i,,N THEN 550
IF PJ--+- THEN tu»10 r PR I NICH
R1U9) TABceem* GOTO 550
IF AI- , - h THEN W-1PRINTCHR
1(1^ T AB C 56 >AS : GOTO 550
IF A*-CHRSU45) THEN Y*Y*W
AS-CHR*C m THEN Y-V-U
AS-CHRIC531 THEN X-X«-lil
A£-CHRltl57) THEN X-X-U
M-"* - THEN 510
A*'CHRStl3J THEN X-0;
PR INT#5 , COL : QN 56D5UB 330.3
48
GOTO 550
PFINTRJ „ "ti*, X t Y: RETURN
PRtNl *1 . "D” , X , Y : RETURN
PR I NTCHRSC 19 1 ; PRI NT "ODDO : "
: PRINT ''COLORE : " : PRtNT
PRtNT' h UOUl * • FRI NT “D tSEGN
A’ 1 : PRINT
PRTNT H N ER0 M ; PRINT^B LO" : PR
INT’-U EROE "
PPINT' R OSSO " FRINÌ : PRIMI "E
XIT"
GET AS=1F ni* H “ THEN 39®
IF AS-“t1 M THEN Z-l:PR2NTTS:
FRINÌ TABtBJMl ; : GOTO 390
IF THEN Z-5 FRINITI;
PRIMI T AtìtS)D* r GOTO 390
IF AS-‘N M THEN COL*0: FRINII
S FRINÌ PR1NT T ABf 9)NI: GOTO
390
IF Af-'-B* THEN C0L-1 FRINII
I PRINTtPPINT TaB<9>B*:GDI0
390
LF AI^U* THEN COL -3 : PRINTT
S : PR I NT : PR I NT TABtSJUS : GOTO
390
IF AI-'R- THEN COL-3; PRINTT
1; PRINT rPRlNT T ABf 9 )R1 ; GOTO
39®
IF THEN : PRINTT »IH»"P
REI1ERE * PER LE OPZIONI " RE
turn
GOTO 390
Commodore Computer Club - 105
VENDITA PER CORRISPONDENZA
GRUPPO CONTINUITÀ
Fornito senza le 12 ballar.* a stilo ncarmabi Ir
Cantante p| lunriananento del Voein computai
Commodore C64 O VlC 2Q 'fi assenza di Sorten-
te Culaia di tur»7N3n.Tmj=inlO 30 minui' Ricarica
tramite a!iTndnltì!Ora Commodore
KIT ALLINEAMENTO TESTINA
Composto dai cacciavite, nastro dn contraine sitamente di ta
tatara con monitor audig p^rmeite il perfetto allineamento bei
regLStratoo digitali anche con n fl Stri rjt"Timertia1l
VELOCIZZA TORE DI CARICAMENTO FLOPPY
Cartndge con un insieme di uhlity res+denti su ros ijer velocizzale
it dri-ve nel Commodore 54
tNTERFACCIA RADIO
Indispensabile per registrare con
registratole Commodore modulo
■. ■ Citi 1 programmi sp*a an per
■Ék^X I ir-mOvitR-r dalle errullenii
r
ì 1 f '' ''
CUFFIA PER
COMMODO-
RE C 64
Loggerissjrma pen
mette i’ ascolto per-
sonale del compu-
tar «vitando d; di-
sirurtoere dorante i
gtetìn.
DUPLICATORE CASSETTE
tnalsp&nsajbde ner realizzare delie copie con un
t^galr a Lùre normale d 1 un nastro pretella 0 con
tiTnca-merijD furbo
COPIATORE PROGRAMMI
Dispositivi.' hardware oer eltettaare copie di na
sm preterii -j turbo utilizando due fegistraion
Cofflm-ddGf* 4J compatitili'
Bus qsjadnsiùt
interfaccia cassette
Duplicatore
Copiatore programmi
ini erticela radi*
Kit ai line smanio teatina
Aiimen-ratore per C&* e VlC 20
Gruppo continui!* (fumile Mfxaa
I* 1 2 batte ri# a siilo r Icar i&ab I II)
Pacco baitene (l£ Siilo 1,2 Voli
ricordabili
Commutalore antenna
ricomputar
Tasto reset
Intedaocia Centronics
Espansione di memoria per C 16
Velocizzatene di CBrtaamenlO
fiep.
Espansione di memoria per
VlC 20 16K
Modulatore Enecutiire
Penna oilnca grafita
Tavoletta grafita
Mufuo'esB con filtra - 2 prese
Cuffia per Commodori C 54
Stabilizzalo re aiellronico di
tensione SD*} W
Gruppo di cimi' nuli È 60 W
Gruppo di embnutlA ?00 V
Inventar 12 Voli oc. 220 Volt ea
100 Watt
CauQ aiimen taziane
Cavo drive 0 stampante
Commodore
Prafurue per Joystick - mt. 3
An CD 100
L.
55 «10
Prolunga per cavo TV - mt. 3
Art. CD 215
L-
12.500
Ari. CD 101
L,
30 IMO
Cavo audio - mi fi
Ari. CD 220
L.
15.500
Art. CD 102
L.
30.000
Adattatore j&iaiick (Alan e C04 ai
Art, CD 1fl3
t.
30.000
C 16)
Art. CD 225
L.
10.500
Art. CO 10*
L
30.000
Adattatore registratore per C tfi
Art CD 226
L.
10 500
Art CO 105
L,
47.000
Mascherina anlifiPassd t?'
Aft. CD 300
L.
35,000
Art. CD 106
Li
45.000
Nastro inchiaslraio per Tal»y -
me ao
Ari CD CiO
L-
1 fi. 500
Art- CD 107
Li
66-000
Nw<tO inchiostrata per TaHy
mi 180
Ari. CD 61 1
L-
16.500
Art CD 117
L.
52,000
Nastrò iftthtìstralp per Tally 1000
e Hprteyw#H
Ari CD 612
L.
9,500
Art. CD foe
L*
0.500
Nastra ancfutìstratc per
Art CD 105
U
5.500
Commodore M RS S0 1
Art CD 61 4
L,
13.000
Art. CD 112
Lr
104.DOO
Nastro inefiipslTaeù per
Ari. CO 114
L
1 56.000
Commodore WPS W2
Art CD 8tfi
L.
10 000
Nastro incblOStraSò p*r
Art. CD 115
L.
49.000
Commodore MP& 003
Art CD 618
L
19,500
Mauso per Commodore C 6*
Art. CD 860
L.
240 000
Aft CD tifi
L.
llj.000
Pacca carta lefìurs (abilitata
Art. CD 120
I.
72.000
24" * 11" modulo da 5W tofll con
Art. CD 121
L.
45.000
bordi e straropc
Art CD 6-30
L-
13.500
Ari. CD 130
L,
236.000
Supporto stampante porta carta in
Art CD 140
L-
41.000
plexiglas? "fumé'' - normale
Ari. CD 660
L-
59.000
Art. 00 150
L
19.000
Supporto stampante porta caria te
ptemglass "fumé - rinforzato
Art CD fi70
L.
00.000
Art CD T6D
L,
430.000
Floppy disK 5 " «indole faccia
Ari CD 170
L.
400 000
doppia densità OOP '
Ari CD ISO
L.
302-000
Conf IO ptìiZ'
Art CO 700
L..
4O.OO0
Floppy oiek 5" singola faccia
Art CO 150
L.
297.000
doppia densità "CBS'' ■
Art CD 200
L,
4.30O
conf. IO pezz»
Art. CD 702
L.
36.000
Floppy dLSk 5" ingoia taccia
Art. CD 205
L.
3.500
doppia densità "VEfiflATlfcT ■
Art CD 210
L.
25.000
conf IO pezzi
Ari CD 704
L.
42.000
Floppy disk 5" singola taccus
doppia derisili ''DYSAN'
conf. if? pezzi
Art
CD 706
L.
$6 0OO
Nastri mag melici C 10 digitali -
Coni 1 0 pezzi
Ari
CD 712
L.
20.Q<»
Nastri magnatici C 15 digdali
Art
CD 714
L-
21.000
Ccc-rrtastiofa in ple^iglass per
C64 - C lfi e VlC 20
Art
CO 75Q
1.
16.000
Cdpnta&tiera In stoffa per
Cfi4 - C16 e VlC 20
Ari
CD 760
Li
10.500
Vaschette portalloppy in plexigiasn
per 40 dischi con chiave Art
CD 770
L.
30.000
Vaschetta portalteppy m plexiplass
per 90 dischi con chiave Art
CD 760
L.
37.000
Kit pulizia restine registrale#*
Art
CD 615
L.
13 500
Kit pulizia disk drive
Aft
CO 620
L-
26,000
Kit pulizia tastiera
Aft
CO 630
L.
16.500
Foratore disk in bastie* [per untiz
zare te seconda faccia bei dLscn )
Aft
CD 640
L.
10.000
Foratore disk rP meigllo ’1a»ui"
Art
CD 846
L.
14 Q00
joystick Speci ravipeo li
Art
CD 650
L.
27.000
Joystick a Migroswittfi
Art
CD 051
1-
52.5DO
Joystick senza fili con unita
neo venia (funjtona a batteria)
Ari
CD S52
L,
96.000
Joystick par CommptlDre 16
(originale)
Ari.
CD 130
L.
29500
TUTTI I PREZZI SONO COMPRENSIVI DI IVA
NON SI ACCETTANO ORQINf INFERIORI A L. 30.000
CONTRIBUTO FISSO SPESE Di SPEDIZIONE L. 5000
SI ACCETTANO ANCHE ORDINI TELEFONICI
Al NUMERI 0522, '661647-661471
BUONO DI ORDINAZIONE
VOGLIATE INVIARMI IN CONTRASSEGNO
MOm€ COGNOME
fNOlftllZO
CAp
CITTA
; L
I
1M.
Art.
L
N
Art
L.
N |
N
Art
L 1
PROVINCIA
_J '
SPESE SPEDIZIONE
L 5,000 ’
PAONE HO Al POSTINO
r |
recensioni
Guida
di riferimento
alC/ 128
Con l'uscita del C/128 sul mercato ita-
liano era logico aspettarsi ì 'in t roda/ ione
di libri sul l'argomento. E’ il caso di que-
sta “Guida al C/128" della EVM.
C ome Ormai tutti sapranno, il C/128
dispone di tre modi di funzionamento
(C/128, C/64 e CP/M) ma, di questi, il
testo in oggetto tratta solo il primo.
Tale scelta ci è sembrata valida, sia
perchè permette di inserire più informa-
zioni sullo stesso argomento* sia perche
non costringe all'acquisto di un libro che,
pur se completo risulterebbe voluminosi!
c costoso in conseguenza. .♦
Alla fine del volume, comunque, vie-
ne proposto l'acquisto della +Guida al
C/64 ’ l t della stessa EVM, a condizioni
vantaggiose, e nell'introduzione viene
assicurata la prossima commercializza-
zione di un libro sul CP/M .
Esaminiamo ora i contenuti del volu-
me che, divìso m sei capitoli, guida il
lettore dalla programmazione più sem-
plice alla complessa gestione del linguag-
gio macchina (LM) e del sistema operati-
vo (SO),
il primo capitolo, oltre a cenni di in-
formatica generale e ad una breve spie-
gazione de! formato delle linee Basic,
presenta un elenco completo delle istru-
zioni del Basic 7,0 del C7128, Questa se-
zione è molto ben curata: ogni informa-
zione sui singoli comandi comprende la
loro corretta sintassi, una dettagliata de-
scrizione ed esempi di utilizzo. Per avere
un'idea della completezza di questa se-
zione basta pensare che le sono dedicate
più di 160 pagine.
Nel secondo capitolo riprende la pro-
grammazione, con la descrizione dì ope-
ratori, costanti, variabili ed espressioni
del Basic.
Il terzo ed il quarto capitolo sono dedi-
cati alla programmazione della grafica e
dei suoni. Oltre ad un elenco completo
dei comandi relativi a tali sezioni, vengo-
no visti i modi di programmazione della
grafica e del suono, anche attraverso nu-
merosi programmi dì esempio.
Viene descritta, tra l'altro, la creazio-
ne di semplici figure tramite istruzioni
grafiche, ed è inclusa una completa se-
zione riguardante gli sprites, con la de-
scrizione dello aprite designer" del C /
128.
Nella programmazione del suono ven-
gono esaminate le istruzioni dedicate,
con tutti i parametri che è possibile intro-
dure, quali forma d'onda. PADSft, i fil-
tri, eccetera
Il quinto capitolo parla delle periferi-
che collegabili, con particolare attenzio-
ne al registratore a cassette, dato che è
questa la memoria di massa più diffusa
tra gli utilizzatori di home computer.
I file, la loro creazione e la relativa
gestione, vengono studiati attraverso nu-
merosi programmi di esempio. Un’altra
sezione è dedicata al trattamento dei file
su disco, alla directory c ad una lista di
comandi del disco, completa di descri-
zione ed esempi di utilizzo,
II sesto capitolo è, forse, il più interes-
sante dato che parla del LM e del SO,
Qui vengono esaminati i concetti di
memoria e di sistemi numerici
( e sadecim ale /binario) e relativi esempi
di conversione.
Viene approfondita la conoscenza del
microprocessore, studiandone le funzio-
ni svolte, anche attraverso l’Assembler
del noto 6502.
In un’altra sezione è descritto il MO-
NITOR LM incorporato e. addirittura, è
presentata una lista di tutte le principali
routine del SO de! nuovo computer. Di
ogni routine viene data la completa de-
scrizione dell'indirizzo di partenza, del
modo di utilizzo e dei registri JN/OUT.
Completano il volume le appendici,
nelle quali* oltre ad una spiegazione mol-
to dettagliata di tutti gli errori possibili, è
presente anche la lista dei comandi del
Basic 7,0* con abbreviazioni e codici to-
lteli di ognuno di essi.
Guida di riferimento al C/128
Pagine 400
Lire 28000
Edizioni EVM Computer?:
Il Sistei
a Operativo
del Cbm/64
Su questo libro non c'è molto da dire
dato che rappresenta il disassemblato
commentato di tutto il SO e l'interprete
Basic del C/64, completo di relativo cross
reference,
L'utilità dì questo libro è facilmente
immaginabile* in quanto si potranno co-
noscere tutti i segreti ed i trucchi usati dai
progettisti della Commodore senza esse-
re costretti a stampare chilometri di lista-
to disassemblato con la propria stam-
pante.
Inoltre è utilissimo per costruire pro-
grammi tipo Extended Basic, o altre cose
del genere, utilizzando nel modo corret-
to le numerose routine del SO senza es-
sere costretti a riscriverle
Pensate alla comodità di avere !6K di
ROM sotto i propri occhi per trovare
immediatamente il “pezzo” necessario
senza effettuare una faticosa ricerca al-
l'interno della memoria del computer,
I commenti (in inglese, ma perfetta-
mente comprensibili) aiutano enorme-
mente la lettura del disasscmblato che.
Commodore Computer Club - W7
DISKETTE SCOTCH: ANNI MEMORIA IN AVANTI.
D ISK ETTE»
1S2D RH
Sur* Doublé Ucnsiv
Rein-iorcwi Huh
5V4
La 3M. leader nella tecnologia dei
supporti magnetici, sa quanto sono preziosi
i dati che affidi alla memoria del tuo
personal computer, Ecco perché ha messo
a punto una nuova linea di diskette Scotch
che sfruttano la sua ìneguagliata
esperienza per offrirti un'affidabilità
assoluta e una durata tale da consentire di
leggere ogni pista milioni e milioni di volte.
Inoltre queste diskette straordinarie
concorrono ad assicurare una lunga vita
Scotch è un marchio
distribuito nei migliori negozi
di audio, video e fotografia
con una gamma completa
per drive da 5V* " e da 3 Vi ",
E" un prodotto Scotch
al tuo drive, grazie a d un abrasivrtà
nettamente al di
sotto della media.
Scegliendo Scotch,
quindi, sei sicuro
di scegliere bene.
Scotch
□ ISKETTES
Laser-Control System
RECENSIONI
*
Per aiutare a sfruttare appieno
le possibilità def tuo computer
e di queste nuove diskette,
oggi Scotch ti regala
i manuali della collana
specializzata Systems.
Infatti ogni confezione da 10
diskette Scotch 1 S2D RH da 5 1 /* ”
avrà abbinato uno dei volumi
della collana Systems
selezionati per te...
e inviando tre prove d’acquisto
avrai in omaggio
anche il grande
Dizionario dell' Informatica.
comunque, richiede una buona cono-
scenza dell’ Assembler del 6502/10,
Completano il volume la descrizione
delle pagine 0-4 ed una lunga Tabella con
gli indirizzi di accesso alle principati rou-
tine del SO non solo del C/64, ma anche
del Vie 20 e dei computer della serie Cbm
3000/4000.
Il sistema operativo del Cbm C/64
Pagine 270
Edizioni EVM Computer;
{ segreti del 1541
Questo libro £ dedicato agli utilizzato-
ri non principianti del drive dato che non
tratta solo di gestione di ftlcc di comandi
del disco, ma ò anche un valido aiuto per
la programmazione avanzata dell'unità a
dischi 1541 ,
Esaminiamolo in dettaglio,
1] primo capitolo è un introduzione
die sottolinea le differenze di trattamen-
to di file su cassetta e su disco; spiega
anche in modo chiaro i van tipi di file
(sequenziali, relativi, eccetera).
Il capitolo N.2 descrive i vari comandi
del drive, quali formattazione, cancella-
zionc, inizializzazione. ed altri. Ogni co-
mando à descritto nei minimi dettagli,
quali la funzione, l'effetto, p possibili er-
rori* ed anche vari esempi pratici di
utilizzo.
Nel terzo capriolo si insegna a caricare
programmi in LM. a trovare l'indirizzo di
partenza dei medesimi, a registrarli sotto
forma di file e a costruire caricatori
Basic.
Il capitolo quattro parla della gestione
avanzata dei file sequenziali, con nume-
rosi programmi di creazione, correzione,
ricerca e ordinamento degli stessi.
Nel quinto si entra nel vivo delfiargo-
mento principale, dato che viene descrit-
ta in dettaglio la struttura di un dischetto
formattato con il 1541. Si prende in esa-
me la struttura interna della BAM e della
directory, gli identificatori, si vede la dif-
ferenza (interna alla directory) dei file
PRG.SEQ, USR, REI , DEL, si impara
a conoscere il formato dei file su disco e
tante altre cose utili alla buona program-
mazione del 1541, Chiude il capitolo una
completa descrizione sull’organizzazio-
ne dei file relativi.
Il capitolo sci è una continuazione del
precedente: descrive come accedere di-
rettamente ad un qualsiasi punto de! di-
schetto ed esamina i buffer interni del
1541, il loro utilizzo, come leggerli, sori-
veri! e, insomma, gestirli.
Il seguito del capitolo tratta gli altri
comandi dei 1541, quali BJock-Read,
Block -Write ed altri, con una particolare
attenzione ai comandi Memory (M-R,
M-W) ed USER II tutto £ contornato da
numerosi programmi ed esempi di
utilizzo.
Il volume prosegue con la descrizione
delle prime otto pagine di memoria (da
S0000 a $07EF) c del disassemblato com-
mentato dei 16K de) SO del disco.
Grazie a manuali di questo tipo È pos-
sibile scrivere programmi come Turbo-
Disk, Fast-Copy, ed altri che richiedano
una specifica conoscenza del SO del di-
sco. Per il corretto utilizzo di questa par-
te del libro è necessaria* ovviamente,
una buona conoscenza dell’ Assembler
del 6502.
In appendice sono riportati utili pro-
grammi per la gestione del disco, tra cui
un disk-monitor interamente in LM e
quindi velocissimo. Una dettagliata de-
scrizione degli errori conclude gh argo-
menti del libro.
Insieme col manuale viene fornito lo
schema elettrico del drive (utile in caso di
guasti). Purtroppo tale schema non à
molto chiaro, dato che tutte le sigle e i
nomi sono stati scritti a mano ed in alcuni
punii appaiono confusi e di difficile
comprensione.
Con una cedola presente nel libro, fa
EVM pone condizioni vantaggiose per
l'acquisto del disco contenente i pro-
grammi riportati nel volume ed anche
alcuni manuali tra t quali "Corso di As-
sembler” e "Le periferiche Commo-
dore".
I segreti del 1541
Pagine 290
Edizioni EVM Computer*
Commodore Computer Club - r09
Vendo corso di basic “Conoscere il
computer direttamente dal computer '
completo. 30 giochi. 15 programmi a lire
50 000 (Alberto Vico , via Sant' Antonio
da Padova 2 - 10121 Tonno Tei Oli-
5389191
Vendo per Vic2G espansione 3/8/16 K
per G64 cedo interessante cartuccia
(sepie (Gianni Cotrogni. via Strambino
23 - 10010 Carrone (Torino) Tel. 0125-
712311).
Vendo modem C64 300/600/1200
baud aut odiai compatibile agii standard
europei ed americani più software su
disco istruzioni, n tutto a lire 200 000
(Stefano Malaisi, via Marsala 31 -
40126 Bologna. Tel 051-235492).
Vendo cartuccia Vie 20 e introduzione
al basac l/ll sempre Vic20 (Luca Span-
garo , via Ugurla 21 - 33100 Udine Tei
0432-471707),
Vendo 2 paddle, duplicatore di cassette
RGP per Commodore 64 (Cristiano Gra-
vandola, via Prof Oliva 16 - T2Q1 7 Sor-
go S.D, Tal. 01 71-769659)
Cerco routines per stampare copia vi-
deo Hi-Res con la stampante Commo-
dore MCS-801 .( Piero Nobile, via Martiri
223 - 18038 Sanremo . Tel. 0184-
74941)
Vendo in blocco Commodore 64, drive
1541 r datasele, stampante Mps 903 e
circa 400 dischetti (Enzo lo vino, via dei
taccaro 30 - 84012 Angri).
Vendo C64 drive 1541- Mps 902, mo-
nitor fosfori verdi inperfette condizioni
più vari programmi, (Ruggero Rìgoldi .
via Zanella 7 - 20052 Monza Tei 039 -
836620).
SCAMBIATEVI LE LISTE
Vendo C 64 piu registratore e/o Vic20
più registratore il primo a lire 400 OGO e il
secondo a lire 150 000 (Adelchi Cre-
span. vìa Toniolo 35 - 31015 Conegiia-
no(Tv) Tei 0438-63318).
Vendo Commodore Plus/4 più registra-
tore, m omaggio giochi Utilities. (Paolo
Borghesi , via Cresserì 25 25020 Pral-
boino(Bs). Tei 030-954211).
Cerco Modem 300 baud max lire
200 000 (M assimilano Di Lorenzo,
piazza 185mo Reg. Folgore 16 - 57100
Livorno. Tei. 0586-580796)
Vendo C64, registratore C2N 1 530, joy-
stick The boss", tasto reset, circa I/O
programmi (Francesco Ramato . via
Roma 62 - 350 W Vigodarzore (Pd). Tei
049-702651)
VendoC64 più stampante grafica bidi-
rezionale Mps 803 più programmi. (Pao-
lo Cerabotini. wa Brioscht 22 - 20736
Milano Tei. 02-8371 945).
Vendo per C64 cartuccia nuova Turbo
disk" con manuale in italiano piu libro
Commodore 129 A lire 60 000 o seoa ra-
tamente a lire 40,000 e 20.000 rispetti-
vamente /Federico Solia, via G. Piazzi
391D - 80137 Napoli. Tei. 081-442428)
Vendo Atan VCS 2600 più joystick più
paddles più cartucce, alimentatore a lire
120 000. (Fabio Calabrese, via Spagna
33 - 90146 Palermo Tel. 091-502509).
Cerco utenti modem 300 baud (stan-
dard europeo) per collegamenti (Mar-
co Cortesi, via Libertà 13 - 47042 Cese-
natico. Tel. 0547-80961).
Compro hardware, computer a prezzi
bassi Anche malridotti, (Christian Mau-
ro , via Cassio P.se 4-2 - 43100 Parma ,
7e/. 05221-42771).
Vendo ZX Spectrum, monitor tv e relati-
vi cavetti, registratore Sharp Ce- 152, in-
terfaccia joystick Ram turbo piu corso
completo video base, diversi programmi
e libri. Disponibile vendita singoli prezzi.
(Giovanni Pilo , via Patabanda 23 -
09123 Cagliari, Tei 070-656872).
Cerco drive 1541 cerco stampante
Commodore o affine. (Gaetano Santoro ,
via Eka Cn sa fu Ut 30 - 90128 Palermo.
Tel. 091-427914 ) %
Vendo Plotter Commodore 1520 a lire
250 000, floppy disk alice 350 000. (Ro-
sario Di Betta, Vta Parodi 42 - QQQ19
Vibo Marina (Cz). Tei. 0963-240834).
Cerco Turbo tape per Cl6. (Marco
Cammarata , via Claudia Augusta 20 -
39100 Bolzano ).
SCAMBIATEVI LE LISTE
Andrea Casale - Via delle Azalee 27 -
00048 Nettuno - Tel 06/9804478
FedeHco Fracassi - Lungarno Tripoli
7/A - 56029 Santa croce S/A (Pi) - Tel.
0571/34640
Davide ValJoggìa - Via Giuseppe Ver-
di 101 - 29021 Borgomanero (No) - Tel
0322/82692 - 844822
Marco Benvenuti - Via C. Mazza 43 -
44100 Ferarra - Tel. 0532/901976
110 - Commodore Computer Club
Antonio Irpino - Vtsa Nazionale 1 14/B
- 83013 Mercogliano (Av) - Tel 0825/
682258
Andrea Trabacchi - Via Pordenone 22
29100 Parma - Tei 0523/62446
Mauro Serafini - Via Renzi 9 - 47037
Rimini - Tel 0541/54652
Guido Scalmato - Via Tnlussa 37 ■
0401 1 Aprilia - Tel. 06/923447
Dario Giannessr - Via Cariote 3 -
56 100 Pisa -Tei. 43817
Sebastiano Stiraci - Via Pallanza tì -
33100 Udine - Tel 0432/45274
Fabio Olgiati - Via Puecher 6 - 20020
Dairago - Tei, 0331/431494
Antonino Baglione Via Castellana
318-90135 Palermo
Gianni Todero - Via Vecchia Trevigia-
na 80 ■ 31015 Corteggiano - Tel. 0438/
60314
Tamara Cacciamanv - Località II Pia-
no - 58017 Pigliano (Gr) - Tel. 0564/
6 1 $622
Angelo Orlandi - Via Delle Albizzie 4Q
- 00942 Roma - Tel. 06/288368
Leonardo Gambini - Via Pisana Tra-
versa dei Bocci 36 55100 San Donato
(Lu) - Tel 0583/510562
Eugenio Baioni - Piazza Cavalieri Vit-
torio Venete 4 - 04019 Terracini (Lt) -
Tel 0773/724252
B
Massimiliano Camuffo - Via Bissa 44
-30173 Mestre (Ve) -041/986707
Paolo Nannotti - Via Grosseto 26 -
53049 Tornita (Si) -Tel 0577/687032
Marco Coccia - c/o Loredana Ammaz-
zai orso - Via Sangro - 65010 S Santa
Teresa di Spoitore (Pcì - Tel 085/
209630
Mario Criscuolo - Piazza B Crivellai
00159 Roma - Tel 06/4390265
Massimo Musaceli! - Via Aminta 11 -
44038 Ferrara - Tei.0532/464110
Carlo Battardin - Via San Pietro 59 -
35 1 00 Padova - tei 049/20272
Rosario Bonavita - Via F della Moni-
ca 60 - 84100 Salerno - Tel 089/
356832
Carmelo Petragiia Via Max Casabun
8-84100 Salerno - Tel 089/236873
Bruno Mialieti - Via Cardinal Jacopo
Monico 23 - 30174 Mestre (Vei - Tel
041/914301
Fiorando Costa - Pordenone Tei
0434/652500
Daniele Petracca - Via Carlo Placa-
ne 26 - 04 100 Latina - TeL 0773/497071
Per registrare,
per conoscere tutto il mondo della videoregistrazione
e le sue novità. Da oggi ogni mese in edicola.
E’ nata
Systems Editoriale
Pubblichiamo r elenco ilei
quaranta lettori che sorto risultati
vincenti alla prima estrazione
mensile del concorso 'Vince chi
legge ' \ L ‘e sira zione è stata
effettuata il 2H marzo I98b presso
la sede della Systems , olia
presenza dì un funzionario
de II' Ammin istraz h me
finanziaria.
! primi cinque estratti vìncono
una stampante Commodore a
margherita: dal sesto al decimo
estratto riceveranno una
p rinter-plotter Com mi tdore ;
dair undicesimo ai quarantesimo
un libro a scelta del Ut biblioteca
Systems oppure un abbonamento
a una rivista Systems . Tutti ì
coupons ricevuti concorreranno
all' estrazione del premio finale,
consistente in utui moto Cagiva
Electra I25cc .
Ed ecco i primi quaranta nomi
(tra parentesi il numero d ordine
del coupon di partecipazione}:
1 Zizzi Giuseppi’ - Manina Franca I fA) - (598)
2 Carulli Luigi - Monte S* Angelo (FG) - (125)
3 Bel trami Massimo - Ravenna - (7701
4 Siedile I -U igìno - Terragnolo fl'N ) - (663)
5 Fumia Bruno - Torino - (257}
6 Gale azzi Gabriele - Carpi (MO) - (4 Fri
7 Marchesiesieh Giovanni - T rieslc - ( 199)
8 Tomaselb Miguel» - Zoppè S. Vendami amo (TV) - t3KH i
9 Cu rei Enrico Bari (550)
10 Totano Atonia - Latina - (271}
1 1 Prosperi Alessio Empoli ( F I ) - (454 )
12 Perrella Antonio - Casi Mare Stahia (NA) - (744)
13 Gaudiosi Rodolfo ■ Capaccio Scalo (SA) - (73)
14 Marciano Antonio - Piano di Sorrento (NA) - (395 )
15 I udani Vincenzo - Benevento (NA) - (166 1
1 6 Bel lini Francesco - Firenze - ( Ih 1 )
17 Sirmicci Guido - Cesena (FO) - (578)
18 Carollo Paolo - F.ste (PD) - (590)
19 Losi Umberto - Cuglieri (OR) (767)
18 Fa rè Silvia - Milano - (707)
21 Sorrentino Giuseppe - Salerno - (343)
22 Stompanato Gaetano - Accora (NA)- (479 )
23 Abenavoli Renato ■ Roma - (688)
24 Colombo Gilberto - Cosiamagnaga (CO) - (626)
25 Silvestri Raffaele - Napoli - (313)
26 Leto Giuseppe -Torino - (558)
27 Del Grande Mirko - Pesaro - (559)
28 Tuinmifiia Stefano - Reggio C. -(506)
29 Ferruzzi Claudio - forino - (57)
30 Conte Antonio - Andria ( BA ) ~ (30)
31 Tugnoli Francesco - Bologna - (376)
32 Pacchiarmi Loris - Portofermrio (LI) - (Ut))
33 Gentili Liberato - Ascoli Piceno - (786)
34 Bozzoli Dante - Marni (TR ) (564)
35 Lucchini Giuseppe - Lido di Roma ( 180)
36 TTofa Biagio - S. Giorgio del Sanniti (BN ) - ( Il 1}
37 Russo Gaetano - Quarto (NA) - (4U4 )
38 Merolla Paolo - Napoli - ( 108}
39 Maxia Renalo - C agliaci - (287)
40 Capo Stefano - Roma (54)
&3U&«imÌÈ=z
INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA
X
0
E
o
£
O)
o
u
0
E
o
c
Q
o.
<
o
tl
>
Ila
0
O
c
o
jji
0
Registrate il mio abbonamento annuale a Commodore Computer Club.
Ho versato oggi stesso il canone di L 35.000 a mezzo c/c postale n 37952207 intestato
a:
Systems Editoriale ■ VJe Famagosta, 75 - 20142 Milano
I Ho inviato oggi stesso assegno bancario n .....
per t ! importo di L. 35 000 intestato a Systems Editoriale
Sì prega di scrivere il proprio nome o i indirizzo completo in modo chiaro e leggibile Inviare
la fotocopia del bollettino di c/c postale
Considerando che i numeri 1 , 2 e 7 sono esauriti vogliate inviarmi i numeri arretrati
al prezzo di L 5 000 cadauno per richieste fino a 4 numeri o di L 4 000 cadauno per
richieste oltre i 4 numeri a* retrati. e perciò per un totale di L Sono a conoscenza che
i fascroli suddetti non saranno inviati in contrassegno e, pertanto, ho provveduto oggi stesso
a versare il canone dì L ... a mezzo c/c postale n. 37952207 intestato a
Systems Editoriale - V ie Famagosta 75 *20142 Milano
a STATISTICA
■
■ Non posseggo un computer
m Posseggo un C64
» Posseggo un V1C 20
■ Posseggo un Commodore Plus 14
■ Posseggo un Commodore Plus 1 6
■ Posseggo un registratore dedicato
* Posseggo un drive 1541
* Posseggo una stampante
* Posseggo un mon itor
» -
“ *4*
M ... 4 ...» 4 . - 4 I » I . i I 1 i IT i II r I I
si
□ .
, no J
si
□ .
. no ZI
si
□ .
. no □
si
□ ;
no Z
si
. no t j
Sì
□ .
, no □
SI
□
. no i
si
r-1
. no □
COLLABORAZIONE
A titolo di prova vi invio un articolo e la cassetta ... disco —
col programma che intendo proporre per fa pubblicazione di cui garantisco ( originalità.
DOMANO A/H IS POSTA
I r ■ a ■ l i
RICHIESTA ARGOMENTI
?
Mi tare o he piacer e che Commodore Computar Club parlasse più spesso dei seguenti
argomenti
V
2 /
IMMlil r > t 9 I »'T » ■ T M f • 1 * - 1
3/„.
GIUDIZIO SUI PROGRAMMI DI QUESTO NUMERO
Ho assegnato un volo da 0 a 1 0 ai programmi die indico di seguito;
A/
8/
C/ .
i-4 *■«>»•+•*
... Voto
Voto
Voto
■ i ■ ■ ■ là ■ r t (•*■*« n-t*rÉ »-r a + 4 I « 4 ! - M
PICCOLI ANNUNCI
> * ■* ■■■**•
CERCO/OFFRO CONSULENZA
■aviari i » iliiiit
- *4- • tf
INVIARE IN BUSTA
CHIUSA E AFFRANCANDO
SECONDO LE TARIFFE VIGENTI A
COMMODORE COMPUTER CLUB
V.le Famagosta, 75
20142 Milano
■
O
s
— ■
o
»■ *
tu 0
2
o
O
>
T3
o
O
<S
3
O
3
o
X
INVIARE TUTTA LA PAGINA ANCHE SÉ SI UTILIZZA UNA SOLA SCHEDA
II lettore di VR
Videoreglstràre è giovane,
dinamico» creativo. DI cultura
e reddito superiore alia
media, possiede spesso più
di un videoregistratore, oltre
all'Impianto hl-fi e a)
computer; nef tempo libero,
non rinuncia a viaggi in Italia
e all’estero, e a cinema, teatro
e spettacoli sportivi in
genere. Usa il
videoregistratore non solo
per f programmi tv o
premei^!, ma anche per
riprendere I momenti felici in
famiglia, per creare una
videoteca personale.
É tu, che lettore sei?
t
« -
L
PRESENTA